Complete automated onboarding: analyzes codebase, creates package, and generates standards & commands via CLI. Automatic package creation when none exist, user selection when packages are available.
Installs into .claude/skills of the current project.
Are you the author of Packmind Onboard?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/packmindhub-packmind-onboard)
---
name: 'packmind-onboard'
description: 'Complete automated onboarding: analyzes codebase, creates package, and generates standards & commands via CLI. Automatic package creation when none exist, user selection when packages are available.'
license: 'Complete terms in LICENSE.txt'
---
# packmind-onboard
Run "packmind --version" to get the current cli installation.
Find the highest version at or below the cli version in this list:
- 0.16.0
- 0.23.0
- 0.35.0
Remember this value as $PACKMIND_CLI_VERSION for the rest of the skill.
Action skill. Provides **complete automated onboarding** for Packmind:
1. Creates or selects a package
2. Analyzes codebase for patterns
3. Generates draft Standards and Commands
4. Creates items via CLI
Automatic package creation when none exist, user selection when packages are available.
## Guarantees
- **Read-only analysis.** Analysis phase does not modify any project files.
- **Drafts before creation.** All items are written as drafts first, allowing review before creation.
- **Preserve existing.** Never overwrite existing artifacts. If a slug already exists, create `-2`, `-3`, etc.
- **Evidence required.** Every reported insight must include file-path evidence (and line ranges when feasible).
- **Focused output.** Max **5 Standards** and **5 Commands** generated per run.
- **Graceful failure.** Partial failures don't lose successful work; failed drafts are preserved.
- **User control.** When packages exist, users confirm package selection before creation.
## Definitions
- **Pattern (non-linter):** a convention a linter cannot reliably enforce (module boundaries, cross-domain communication, workflow parity, error semantics, etc).
- **Evidence:** `path[:line-line]` entries; omit line ranges only when the file isn't text-searchable.
---
## Step 0 — Introduction
Print exactly:
```
I'll start the Packmind onboarding process. I'll create your first standards and commands and send them to your Packmind organization. This usually takes ~3 minutes.
```
---
## Step 1 — Get Repository Name
Get the repository name for package naming:
```bash
basename "$(git rev-parse --show-toplevel)"
```
Remember this as the repository name for package creation in Step 2.
Also run `packmind whoami` and extract the `Host:` value from the output. Remember this URL for the completion summary.
---
## Step 2 — Package Handling
Handle package creation or selection.
### Check existing packages
List available packages by following [`packmind-versions/$PACKMIND_CLI_VERSION/list-packages.md`](packmind-versions/$PACKMIND_CLI_VERSION/list-packages.md).
Parse the output to get package names and slugs.
### No packages exist
Auto-create a package using the repository name. Follow [`packmind-versions/$PACKMIND_CLI_VERSION/create-package.md`](packmind-versions/$PACKMIND_CLI_VERSION/create-package.md) using `${REPO_NAME}-standards` as the package name.
The create-package step will determine the space. Capture the chosen space slug as `$SPACE_SLUG` and the new package slug as `$PACKAGE_SLUG`.
Print:
```
No existing packages found — created a new one: ${REPO_NAME}-standards
```
### One package exists
Ask via AskUserQuestion:
- "Add to `{package-name}`?"
- "Create new package instead"
### Multiple packages exist
Ask via AskUserQuestion:
- List each existing package as an option
- Include "Create new package" option
### If "Create new package" is selected
- Ask for package name (suggest `${REPO_NAME}-standards` as default)
- Follow [`packmind-versions/$PACKMIND_CLI_VERSION/create-package.md`](packmind-versions/$PACKMIND_CLI_VERSION/create-package.md) using the chosen name.
- The create-package step will determine the space. Capture the chosen space slug as `$SPACE_SLUG` and the new package slug as `$PACKAGE_SLUG`.
### If an existing package is selected
Follow [`packmind-versions/$PACKMIND_CLI_VERSION/select-package.md`](packmind-versions/$PACKMIND_CLI_VERSION/select-package.md).
### After this step
Remember `$PACKAGE_SLUG` (the slug of the selected/created package) and `$SPACE_SLUG` for later reference — they will be used together in Step 9 to ensure items are added to the correct package in the correct space (as `@$SPACE_SLUG/$PACKAGE_SLUG`).
---
## Step 3 — Announce
Print exactly:
```
packmind-onboard: analyzing codebase (read-only)
Target package: [package-name]
```
---
## Step 4 — Detect Existing Packmind and Agent Configuration
Before analyzing, detect and preserve any existing Packmind/agent configuration.
### Glob (broad, future-proof)
Glob for markdown in these roots (recursive):
- `.packmind/**/*.md`
- `.claude/**/*.md`
- `.agents/**/*.md`
- `**/skills/**/*.md`
- `**/rules/**/*.md`
### Classify
Classify found files into counts:
- **standards**: `.packmind/standards/**/*.md`
- **commands**: `.packmind/commands/**/*.md`
- **other_docs**: any markdown under `.claude/`, `.agents/`, or any `skills/` or `rules/` directory outside `.packmind`
If any exist, print exactly:
```
Existing Packmind/agent docs detected:
Standards: [N]
Commands: [M]
Other docs: [P]
```
No overwrites. New files (if you Export) will be added next to the existing ones.
---
## Step 5 — Detect Project Stack (Minimal, Evidence-Based)
### Language markers (check presence)
- JS/TS: `package.json`, `pnpm-lock.yaml`, `yarn.lock`, `tsconfig.json`
- Python: `pyproject.toml`, `requirements.txt`, `setup.py`
- Go: `go.mod`
- Rust: `Cargo.toml`
- Ruby: `Gemfile`
- JVM: `pom.xml`, `build.gradle`, `build.gradle.kts`
- .NET: `*.csproj`, `*.sln`
- PHP: `composer.json`
### Architecture markers (check directories)
- Hexagonal/DDD: `src/application/`, `src/domain/`, `src/infra/`
- Layered/MVC: `src/controllers/`, `src/services/`
- Monorepo: `packages/`, `apps/`
Print exactly:
```
Stack detected (heuristic):
Languages: [..]
Repo shape: [monorepo|single]
Architecture markers: [..|none]
```
---
## Step 6 — Run Analyses
Read each reference file for detailed search patterns, thresholds, and insight templates.
| Analysis | Reference File | Output focus |
|----------|----------------|--------------|
| File Template Consistency | `references/file-template-consistency.md` | Commands |
| CI/Local Workflow Parity | `references/ci-local-workflow-parity.md` | Commands |
| Role Taxonomy Drift | `references/role-taxonomy-drift.md` | Standards |
| Test Data Construction | `references/test-data-construction.md` | Standards |
### Output schema (internal; do not print as-is to user)
For every finding, keep an internal record:
```
INSIGHT:
title: ...
why_it_matters: ...
confidence: [high|medium|low]
evidence:
- path[:line-line]
where_it_doesnt_apply:
- path[:line-line]
```
---
## Step 7 — Generate All Drafts
Generate all draft files in one batch, using the format defined for your CLI version.
Read the **Draft Format** section in [`packmind-versions/$PACKMIND_CLI_VERSION/create-items.md`](packmind-versions/$PACKMIND_CLI_VERSION/create-items.md) and create draft files accordingly.
### Generation Rules (all versions)
- Generate drafts **only from discovered insights** (no invention)
- Use evidence from analysis to populate rules/steps
- Cap output: max **5 Standards** + **5 Commands**
- Never overwrite existing files; append `-2`, `-3`, etc. if slug exists
---
## Step 8 — Present Summary & Confirm
Present the generated draft files and ask for confirmation:
```
============================================================
ANALYSIS COMPLETE
============================================================
Target package: [package-name]
Stack detected: [languages], [monorepo?], [architecture markers]
Analyses run: [N] checks
DRAFTS CREATED:
Standards ([N]):
1. [Name] → .packmind/standards/_drafts/[slug].draft.md
2. ...
Commands ([M]):
1. [Name] → .packmind/commands/_drafts/[slug].draft.md
2. ...
Drafts are saved in .packmind/*/_drafts/ — you can review or edit them before creating.
============================================================
```
Then ask via AskUserQuestion with three options:
- **Create all now** — Proceed with creating all standards and commands
- **Let me review drafts first** — Pause to allow editing, re-run skill when ready
- **Cancel** — Exit without creating anything
---
## Step 9 — Create Items
Follow [`packmind-versions/$PACKMIND_CLI_VERSION/create-items.md`](packmind-versions/$PACKMIND_CLI_VERSION/create-items.md).
---
## Step 10 — Completion Summary
Follow [`packmind-versions/$PACKMIND_CLI_VERSION/completion-summary.md`](packmind-versions/$PACKMIND_CLI_VERSION/completion-summary.md).
---
## Edge Cases
### Package creation fails
If `packmind packages create` fails:
```
❌ Failed to create package: [error message]
Please check:
- You are logged in: `packmind login`
- Your network connection is working
- The package name is valid
Cannot proceed with onboarding until package is created.
```
Exit the skill. Do not proceed to analysis.
### Not logged in
If CLI commands fail with authentication errors:
```
❌ Not logged in to Packmind
Please run:
packmind login
Then re-run this skill.
```
### No packages available
If the package listing command returns no packages:
Auto-create a package using the repository name.