Loading...
Loading...
Interactively onboard a project to agent-driven development by running a structured interview and generating a complete AGENTS.md (or CLAUDE.md). Use this skill whenever a user mentions "AGENTS.md", "CLAUDE.md", "agent behavior", "agent instructions", "agent config", "set up agent rules", "onboard agent", "configure claude code", "agent guardrails", "agent workflow", or asks how to tell an AI agent how to behave in their project — even if they just say "help me write AGENTS.md" or "what should go in CLAUDE.md". Always prefer this skill over ad-hoc agent instruction generation.
npx skill4agent add gohypergiant/agent-skills accelint-onboard-agentsAGENTS.mdCLAUDE.mdaccelint-onboard-openspecopenspec/config.yaml┌──────────────────────────────────────────────────────────────┐
│ Agent Instruction Stack │
├──────────────────────────────────────────────────────────────┤
│ │
│ AGENTS.md / CLAUDE.md ← THIS SKILL │
│ ───────────────────── (Layer 1: Agent Identity) │
│ WHO the agent is, HOW it works, WHEN it communicates │
│ │
│ • Role definition │
│ • Communication style and tone │
│ • Workflow procedures (PR flow, commit conventions) │
│ • Decision-making heuristics │
│ • Tool usage preferences │
│ • Behavioral guardrails │
│ │
├──────────────────────────────────────────────────────────────┤
│ │
│ openspec/config.yaml ← accelint-onboard-openspec skill │
│ ──────────────────── (Layer 2: Project DNA) │
│ WHAT the project is, WHAT stack it uses, WHAT rules apply │
│ │
│ • Domain description and tech stack │
│ • Architectural patterns and coding standards │
│ • Project structure and per-artifact rules │
│ │
└──────────────────────────────────────────────────────────────┘config.yaml| Belongs in AGENTS.md | Belongs in config.yaml |
|---|---|
"Always run | "Package manager: pnpm" |
| "Use Conventional Commits" | "TypeScript 5.x, strict mode" |
| "Ask before deleting files" | "Monorepo: Turborepo + PNPM" |
| "Prefer small, focused PRs" | " |
| "You are a senior TS engineer" | "Domain: geospatial visualization" |
| "Never force-push to main" | "Testing: Vitest + @testing-library" |
Does AGENTS.md (or CLAUDE.md) exist?
│
├── No → MODE 1: Create
│ Full interview from scratch.
│
└── Yes → Read the file, then assess:
│
├── Empty or near-blank (< ~10 meaningful lines)?
│ → MODE 1: Create (with overwrite confirmation)
│ Ask: "AGENTS.md exists but appears empty — should I
│ populate it from scratch, or preserve any current content?"
│
├── Contains recognised template sections?
│ (## Role & Identity, ## Guardrails, ## Workflow Procedures, etc.)
│ → MODE 3: Refresh
│ Abbreviated interview covering only detected drift and
│ unresolved <!-- TODO --> markers.
│
└── Contains real content in an unrecognised shape?
→ MODE 2: Import
Present three options (A / B / C) before proceeding.## Role & Identity## Communication## Workflow Procedures## Decision Heuristics## Tool Preferences## Guardrails"This AGENTS.md has existing content with a structure I don't recognise. How would you like to proceed?(a) Restructure — I'll import your existing content, map it onto this skill's template sections, flag any material that belongs ininstead, run a targeted interview to fill gaps, and produce a merged file ready to replace the current one.openspec/config.yaml(b) Append — I'll run the full interview and add this skill's sections below your existing content without modifying what's already there.(c) Dry run — I'll run the full interview and show you exactly what I would have generated, with no changes to the filesystem. Use this to evaluate fit before committing."
openspec/config.yamlconfig.yaml# from existing file# new---<!-- Added by accelint-onboard-agents skill -->| Signal | Where to look |
|---|---|
| New packages added | |
| CI checks changed | |
| Husky hooks modified | |
| New migration directory | |
| Versioning tooling added | |
| OpenSpec added/removed | |
| New protected branches | |
<!-- TODO: fill in -->"I found [N] sections that may have drifted and [M] unresolved TODOs. I'll only ask about those — the rest looks current."
/opsx:proposegit push --forcepnpmnpm runpackage.jsonpnpm -wpnpm --filter <pkg>pnpm turbo run build --filter=...feat:fix:chore:docs:test:refactor:perf:ci:!feat!:BREAKING CHANGE:/opsx:propose# TODO| Gap | Files / signals to inspect |
|---|---|
| Commit convention | |
| PR workflow | |
| Pre-commit checks | |
| Test runner preference | |
| Package manager | |
| Forced-push protection | |
| Migration guardrails | Presence of |
| Secret handling | |
| OpenSpec usage | |
| Versioning workflow | |
| Path aliases (for tool commands) | |
- Always run `pnpm check` before committing # inferred from .husky/pre-commit
- Use Conventional Commits (`feat:`, `fix:`) # inferred from commitlint.config.ts<!-- TODO: fill in --><!-- TODO: fill in -->AGENTS.mdCLAUDE.md<!-- TODO -->[placeholder]<!-- TODO: fill in --># Agent Behavior
> NOTE: This file governs HOW the agent behaves. Project facts (stack,
> architecture, domain concepts, coding standards) belong in
> `openspec/config.yaml`, not here. See the separation of concerns in
> the OpenSpec documentation.
---
## Role & Identity
[One-sentence role definition, e.g., "You are a senior TypeScript engineer
working across the @accelint/* monorepo."]
[Scope constraints, if any, e.g., "Focus on rendering pipeline packages
(@accelint/standard-toolkit, @accelint/layer-orchestration). Escalate cross-cutting
architectural decisions."]
---
## Communication
- **Response style**: [concise / detailed / adaptive — describe when each applies]
- **Code changes**: [show diffs / show full file / inline comments / separate block]
- **Uncertainty**: [always ask / ask for scope-changing uncertainty only / state assumption and proceed]
- **Reasoning**: [explain reasoning / act without narrating / explain only when asked]
---
## Workflow Procedures
### New Features
[step-by-step procedure, e.g.:]
1. Start with `/opsx:propose` for any non-trivial change
2. Get proposal reviewed before writing code
3. Run `pnpm check` and `pnpm test` after each meaningful change
4. Open a draft PR early; mark ready only after CI passes
### Bug Fixes
[procedure — often shorter than feature flow, e.g.:]
1. Reproduce with a failing test before touching code
2. Fix the root cause, not the symptom
3. Confirm the test passes, then open a PR
### Pre-Commit Checklist
- [ ] [check, e.g., `pnpm typecheck`]
- [ ] [check, e.g., `pnpm lint`]
- [ ] [check, e.g., `pnpm test`]
### Commit Messages
Convention: [e.g., Conventional Commits]
Format: `[type]([scope]): [description]`
Types: `feat`, `fix`, `chore`, `docs`, `test`, `refactor`[, additional types]
Example: `feat(layer): add WebGPU fallback for Safari`
### PR Conventions
- [size guideline, e.g., "prefer small, focused PRs over large changesets"]
- [label convention, if any]
- [review request convention, if any]
### Versioning
- [when and how to bump versions, e.g., "use `pnpm changeset` for any
user-facing change; patch for fixes, minor for features, major for
breaking changes"]
---
## Decision Heuristics
| Situation | Default Action |
|-----------|---------------|
| Uncertain about scope | [ask / proceed with stated assumption] |
| Deleting files | [always ask first] |
| Changing public API | [always ask first] |
| Adding a new dependency | [ask, state rationale] |
| Modifying shared utilities | [ask, list affected packages] |
| Discovering scope creep mid-task | [pause and surface to user] |
| Two equally valid approaches | [pick one and state choice / ask] |
[additional heuristics]
---
## Tool Preferences
- **Package manager**: [e.g., always use `pnpm`; never `npm` or `yarn`]
- **Test runner**: [e.g., `vitest` — never `jest`]
- **Linting / formatting**: [e.g., `biome` — never `prettier` or `eslint` separately]
- **Task runner**: [e.g., `pnpm turbo run <task> --filter=<pkg>`]
- **Version control**: [e.g., `git` via CLI — no GUI wrappers]
[additional tool preferences]
---
## Guardrails
### Never (hard stops — no exceptions)
- [ ] Never force-push to `main` or `[protected branch]`
- [ ] Never commit secrets, tokens, or credentials
- [ ] [additional hard stop]
### Always Ask First (soft gates)
- [ ] Before deleting any tracked file
- [ ] Before modifying `package.json` scripts in a shared package
- [ ] Before changing a migration file
- [ ] [additional soft gate]
### Security Sensitivity
- [any areas requiring special care, e.g., "treat all environment variable
names as sensitive — never log them, even in debug output"]pnpm checkopenspec/config.yamlaccelint-onboard-openspec