skills/project-bootstrap/SKILL.md
Initialize or update a repository so coding agents can work in it effectively. Use this skill whenever the user asks to bootstrap a new project, make a repo coding-agent friendly, create or update AGENTS.md, set project rules, add documentation conventions, initialize docs structure, or refresh package-manager/project-command guidance.
npx skillsauth add eho/agent-skills project-bootstrapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to initialize or update lightweight project conventions for coding agents. The goal is not to teach agents generic software engineering. The goal is to capture the small set of project-specific facts that are easy to get wrong or expensive to rediscover.
This skill includes a reusable project-rules template at templates/AGENTS.md. The template is the standard baseline for this user's projects. Copy it first, then adapt repo-specific content. Do not rebuild AGENTS.md from memory.
Keep AGENTS.md lean, but do not prune standard guardrails from the template.
Only include rules that are specific to this repository or stack. If a capable coding agent can infer a rule from the codebase in under a minute, omit it unless the rule prevents a common mistake.
The template's package-manager, documentation, documentation-conventions, testing-expectations, and safety sections are standard guardrails. Include them when initializing a project unless the user explicitly asks for a minimal file or a section truly cannot apply.
Good AGENTS.md content:
Avoid:
Before editing, gather local evidence:
rg --files -g 'AGENTS.md' -g 'README.md' -g 'package.json' -g 'bun.lock' -g 'pnpm-lock.yaml' -g 'yarn.lock' -g 'package-lock.json' -g '.npmrc' -g '.nvmrc' -g '.node-version'find docs -maxdepth 3 -type f, if docs/ exists.package.json scripts and dependencies, if present.package.json packageManager, workspaces, and monorepo package locations, if present.app.json, expo.json, next.config.*, vite.config.*, tsconfig.json, turbo.json, or workspace files..env.example or documented environment setup.Use this evidence to infer the minimum useful rules. Do not invent rules when the repo does not indicate them.
Use this decision matrix before editing:
| Repository state | Action |
| --- | --- |
| AGENTS.md exists | Update mode. Use the existing file as the base, preserve project-specific rules, and patch in missing standard sections from templates/AGENTS.md. Do not wholesale rewrite unless the user asks. |
| No AGENTS.md, but code and package metadata exist | Initialize mode. Copy templates/AGENTS.md, then adapt it from repository evidence. Ask only about unresolved ambiguities. |
| Empty or barely scaffolded repository | Ask for the package manager, project purpose, app/service/library shape, and whether to initialize lightweight docs before writing files. |
| Multiple package-manager signals | Report the ambiguity and ask one focused question unless scripts/docs clearly identify the intended manager. |
| Existing docs use a different structure | Preserve the existing docs convention and document the actual source of truth. Do not force the default docs layout. |
| Monorepo or multi-app workspace | Capture root commands and package/app-specific commands separately only when agents need both. Do not flatten distinct package managers or runtime rules. |
Use initialize mode when no AGENTS.md exists. Copy templates/AGENTS.md as the starting point, then replace placeholders and adjust repo-specific content using repository evidence and user answers. Keep the standard package-manager, documentation, documentation-conventions, testing-expectations, and safety sections. Remove a standard section only when the user explicitly asks for a minimal file or the section truly cannot apply.
Use update mode when AGENTS.md already exists. Preserve project-specific rules. Add any missing standard sections from templates/AGENTS.md, especially package manager, documentation conventions, design-doc statuses, testing expectations, and safety. Refresh stale package-manager, command, and documentation sections when the repo clearly contradicts them. Do not remove existing rules unless they are obviously generic clutter or the user asks for cleanup.
Update mode merge rules:
AGENTS.md as the base document.When initializing a new project that lacks source-of-truth docs, ask a small number of focused questions before writing AGENTS.md or docs. The goal is to capture enough context to seed durable docs, not to run a full product strategy workshop.
Ask only questions needed for missing context. Prefer one concise round with prompts like:
docs/vision/vision.md, docs/architecture/architecture.md, and docs/architecture/tech-stack.md?After the user answers:
docs/vision/vision.md for purpose, audience, goals, and product direction.docs/architecture/architecture.md for high-level system shape, major components, data flow, and integration boundaries.docs/architecture/tech-stack.md for chosen technologies, package manager, runtime, tooling, and deployment assumptions.docs/architecture/current-design/ only for implemented behavior; for an empty project, create an index that says current design docs should be added as features are implemented.Current Source Of Truth entries to AGENTS.md only for files or directories that now exist.Never leave placeholders in committed project docs or AGENTS.md.
The template intentionally combines the best reusable pieces from mature project rule files:
When adapting the copied template:
Package Manager, Documentation, Documentation Conventions, Testing Expectations, and Safety.Runtime Rules, Project Patterns, Commands, and Current Source Of Truth when there is no real content yet.AGENTS.md without documentation lifecycle rules.Testing Expectations; make the commands specific when known, or keep the generic template wording about relevant tests and documenting blockers.Safety; use the template wording at minimum, and add repo-specific safety rules for credentials, cloud resources, databases, user data, destructive operations, or generated files when applicable.Use templates/AGENTS.md as the source of truth for standard section wording. Do not duplicate or retype those sections from memory.
Keep these standard sections in initialized projects unless the user explicitly asks for a minimal file or the section truly cannot apply:
Package ManagerDocumentationDocumentation Conventions, including Design-doc statusesTesting ExpectationsSafetyWhen updating an existing AGENTS.md, add missing standard sections from the template rather than recreating abbreviated versions.
Detect the package manager from lockfiles and package-manager metadata. Prefer explicit metadata, then lockfiles, then documented commands:
| Signal | Package manager |
| --- | --- |
| package.json packageManager: "bun@..." or bun.lock | Bun |
| package.json packageManager: "pnpm@..." or pnpm-lock.yaml | pnpm |
| package.json packageManager: "yarn@..." or yarn.lock | Yarn |
| package.json packageManager: "npm@..." or package-lock.json | npm |
| pyproject.toml with Poetry config or poetry.lock | Poetry |
If multiple package-manager signals exist, report the ambiguity and prefer the one used by scripts/docs only when clear. If no package manager exists yet, ask which one to standardize on before writing AGENTS.md. Do not leave the package manager unspecified.
Adapt the template's package-manager section to the detected or chosen tool. It must tell agents which commands to use and which equivalent commands or lockfiles not to use.
Use concrete wording like:
## Package Manager
Use Bun.
- `bun install` to install dependencies
- `bun run <script>` to run package scripts
- `bunx <tool>` to run one-off tools
- Do not use `npm install`, `yarn install`, or `pnpm install`
- Do not create or update `package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`
Adapt the command names and forbidden lockfiles for pnpm, npm, Yarn, Poetry, or other package managers. For example, pnpm projects should prefer pnpm install, pnpm run <script>, and pnpm dlx <tool> and should not create bun.lock, package-lock.json, or yarn.lock.
Add stack-specific package rules when evidence supports them:
expo install <package> when Expo SDK compatibility matters..env; do not add dotenv only to load local environment variables.pyproject.toml and poetry.lock.Read package scripts and include only commands agents will commonly need:
Prefer package scripts over underlying tools. If a test or typecheck must not be invoked directly, state that.
Omit missing commands instead of adding placeholders or instructions like "add commands here later." If the repo has not been scaffolded yet, either ask whether to scaffold first or omit the commands section until scripts exist.
If the project has no docs structure and the user wants docs initialized, create this standard scaffold. Keep indexes lightweight and factual:
docs/README.md
docs/vision/README.md
docs/architecture/README.md
docs/architecture/current-design/README.md
docs/design/README.md
docs/design/archive/README.md
docs/operational/README.md
docs/planning/README.md
docs/testing/README.md
Create richer seed docs only when the user provides enough context:
docs/vision/vision.md
docs/architecture/architecture.md
docs/architecture/tech-stack.md
For an empty project, do not invent architecture. It is acceptable for the indexes to say what belongs in each directory and point to seed docs that actually exist.
If the repo already has a different docs convention, preserve it and clarify the current source of truth instead of forcing the template's structure. Still include the standard documentation lifecycle rules unless the user explicitly opts out.
When docs exist or are initialized, include both Documentation and Documentation Conventions from the template. Do not drop the Design-doc statuses list just because the project is new or sparse.
Always include the Testing Expectations section from templates/AGENTS.md. Make commands concrete when known; otherwise keep the generic template wording and do not invent commands.
Always include the Safety section from templates/AGENTS.md. Add repo-specific safety constraints when applicable, such as production account names, protected data stores, generated credential locations, or commands that mutate external services.
Add a runtime/framework section only when the repo evidence shows a real trap. Keep it short.
Examples:
expo install when version compatibility matters.Use this shape:
## Runtime Rules
- Use `<preferred API>` for `<task>`; do not use `<forbidden API>` in `<runtime>`.
- Use `<framework command>` when adding `<kind of dependency>`.
Omit this section if there are no clear project-specific runtime rules.
Do not list the whole repository. Add source-layout guidance only for non-obvious boundaries that affect agent work.
Good:
services/ owns business logic; route handlers should stay thin.packages/generated/ is generated and should not be edited.apps/web/ and apps/api/ have separate scripts and env files.Avoid:
components/ contains components.tests/ contains tests.utils/ contains utilities.When creating docs indexes, keep them lightweight and factual. Do not invent architecture. For genuinely new projects, describe what belongs in each docs area instead of leaving placeholder prompts.
docs/README.md should link to the main sections with one-line descriptions.
Subdirectory README.md files should explain what belongs there and link to existing docs, if any.
Use relative Markdown links.
After editing:
AGENTS.md and check that every repo-specific addition is supported by repository evidence or user answers. Standard guardrail sections may remain even when generic.rg '<[^>]+>|add this later|TODO' AGENTS.md docs, adjusting paths if docs were not created.Finish with a concise summary:
documentation
Compact the current conversation into a handoff document for another agent to pick up.
tools
--- name: expo-ios-agent-device description: Drive the Kotoba Expo iOS simulator effectively with agent-device. Use when verifying iOS UI behavior, testing Expo dev-client flows, seeding simulator app state, diagnosing accessibility selectors, or automating simulator QA for this repo. --- # Expo iOS Agent Device Use this skill when automating Kotoba on the iOS simulator with `agent-device`. ## Preflight Run these before planning commands: ```sh agent-device --version agent-device help workf
development
Create or update a DESIGN.md design system specification for websites, apps, prototypes, or product designs. Use when the user asks to generate a DESIGN.md, design system spec, UI specification, frontend design source of truth, Stitch/Google Design.md-style document, or agent-ready design tokens and component guidelines from images, descriptions, screenshots, mockups, brand notes, or raw product requirements.
documentation
Run the review-revision loop for an existing design doc: call design-doc-reviewer, address Critical Gaps and Minor Issues, repeat until clean, then mark the doc Revised for feature-delivery. Use when asked to review and revise, repeat until no gaps remain, prepare a design doc for feature delivery, or start a reviewer subagent and address feedback. Use design-doc-reviewer for one-time read-only critique.