Repository files navigation

AI DevKit

Evolvable agent skills for the full software development lifecycle — requirements, design, decisions, repo setup, and delivery. Vendored into your repo, they adapt to how your team works and still sync with upstream.

Documentation-first: agents and humans work from the same knowledge, memory, and context — structured docs are the shared state.

Install

Three paths — vendored with sync (recommended, fully evolvable), skills.sh, or a zero-setup plugin trial. The install path decides whether your per-repo adaptations survive upgrades; INSTALLATION.md covers every scenario and its consequences. Tell your agent:

Fetch and follow https://raw.githubusercontent.com/CommandOSSLabs/ai-devkit/refs/heads/main/INSTALLATION.md

Quick Start

Skills trigger from natural language — describe what you need and the right one picks it up (slash commands like /cmk:requirements work too). Straight after installing, try any of these:

Set up this repo
We just discussed the billing system requirements — save that as requirements
We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Work on TICKET-123

Each request lands in the right skill, which asks only what it must and writes the result where it belongs under /docs. The rest of this README is depth — the skills work without reading it.

How It Works

One mental model runs through every skill: the SDLC is a flow of documents that build on each other, and the repository's /docs tree is where that flow lives.

Requirements ──▶ Design ──▶ Plan ──▶ Implement ──▶ Simplify ──▶ Review ──▶ Ship
what & why how, as an └────────── delivery family ──────────┘
implementation-
agnostic spec
cross-cutting at every stage:
Decisions (cmk:adr) · Glossary (cmk:glossary) · Learnings (cmk:learn) · Rules (cmk:rule)

Three principles keep the flow coherent:

  • Guidance over forms. The requirements and design skills follow shaping directives, not fixed templates — they interview when the input is still an idea and distill documents specific to your product rather than generic ones.
  • Coherence cascades. Docs cross-reference each other, so changing one means checking what it links to and what links back. Skills detect conflicts — a design contradicting a locked decision, a term drifting from the glossary — and flag them for you to resolve instead of silently overriding.
  • Progressive disclosure. Every docs folder README is a concise navigation index; depth lives one level down. Agents and humans read only what the task at hand needs.

The full phase definitions live in docs/design/sdl-phases.md.

Motivation

AI agents lose context between sessions. Teams repeat requirements, re-explain decisions, and re-establish scope every time a new conversation starts. There is no shared memory between agents and humans.

This devkit solves that by using structured documentation as the shared state. The repository becomes the single source of truth — agents read it to get up to speed, humans and agents write to it to preserve decisions, and both act on the same base of knowledge.

This is a guideline, not a rulebook. The goal is better structure, not more files. Teams can draft in Notion, Google Docs, or conversation — but finalized, development-critical context should live in the repository.

Skills

SkillPurpose
cmk:docsBootstrap or update the /docs directory structure
cmk:requirementsCreate or iterate product/feature requirements in docs/requirements/
cmk:designCreate or iterate distilled design in docs/design/ — system-wide or per-feature
cmk:adrCreate or update decisions in docs/decisions/
cmk:glossaryCreate or maintain the shared normative glossary of systems, components, and actors
cmk:codebase-docsGenerate or update hierarchical, AI-navigable docs under docs/ai/
cmk:learnExtract and record non-obvious learnings and gotchas
cmk:ruleCodify engineering standards into docs/rules/
cmk:project-layoutEstablish or audit a role-first monorepo layout and package placement
cmk:toolchainAssign tool roles, pin runtime versions, and set a gitignore baseline
cmk:agent-instructionsMaintain a thin, multi-vendor root instruction file backed by docs/rules/
cmk:mcp-configSet up checked-in, per-vendor MCP server configuration
cmk:local-stackCreate or iterate worktree-isolated local development stacks
cmk:infraEstablish or audit infrastructure-as-code packages and environment boundaries
cmk:cicdStructure CI, deployment, and policy automation around GitHub Actions
cmk:enclaveAttested enclave boundary, secret packing, and TEE applications (Nautilus / Nitro)
cmk:test-resourcesShare an expensive test resource (container, database, external service) safely across a parallel test runner
cmk:rustIdiomatic Rust practices — error handling, module boundaries, feature flags, lint/test wiring, dependency hygiene — inside a design-decided crate
cmk:testcontainersStart and share a throwaway service container from Rust test code via the testcontainers crate
cmk:agent-vendorsVendor the kit's skills into one canonical home with per-vendor adapters
cmk:syncReconcile vendored skills with upstream without flattening local evolution
cmk:repo-setupOrchestrate every setup facet into one bootstrap, adopt, update, or verify pass

Delivery family

SkillPurpose
cmk:delivery-workflowThe tracker-neutral contract every delivery skill operates inside — reconciliation loop, readiness vocabulary, acceptance criteria
cmk:discover-effortsReconcile an uncertain body of work into a complete tracker issue set before delivery begins
cmk:delivery-intakePull full context for a tracker issue, set up its branch/worktree, and move it to in-progress
cmk:delivery-spec-planProduce a low-level design spec and an executable, dependency-aware implementation plan
cmk:delivery-simplifyBehavior-preserving quality cleanup (reuse, simplification, efficiency, altitude) — phase 3b after implement
cmk:delivery-reviewMulti-lens review — correctness, quality, spec/AC compliance, security, and more — with verified findings
cmk:delivery-shipFinalize delivery: verified evidence, a review-ready PR, and tracker reconciliation
cmk:delivery-handoffGenerate a self-contained handoff prompt to continue tracked work in a different agent
cmk:delivery-pipelineEnd-to-end autonomous delivery of one issue, or a dependency-aware cluster, across phases 1–5 (incl. 3b)

Knowledge family

SkillPurpose
cmk:sui-sdkgRPC-first guidance for talking to a Sui full node — JSON-RPC is deprecated
cmk:sui-devstackWorktree-safe local Sui network setup for development and e2e tests

Usage

A deeper tour, in the order docs build on each other when starting a new project. Every line in the blocks below is a real trigger — paste and go.

1. Scaffold — cmk:docs

Set up the /docs structure once; re-run it to verify or update as the project grows.

Set up the docs structure for this project
Check if our docs structure is up to date with the latest devkit

2. Requirements — cmk:requirements

Define what to build and why — the upstream source of truth everything downstream references. Works from conversation, Notion/Google Docs links, or an interview when all you have is an idea.

We just discussed the billing system requirements — save that as requirements
Use this Notion doc to draft requirements for the new onboarding flow: [link]
Update the requirements — we're cutting the SSO requirement from v1

3. Design — cmk:design

Design how to build it as an implementation-agnostic spec — system-wide or per-feature. Checks upstream requirements and decisions for conflicts; cascades accepted changes downstream.

Draft a system design for our payments service
Create a feature-level design for checkout retry logic
Update the system design — we switched from PostgreSQL to DynamoDB

Any stage: Decisions — cmk:adr

Record system-level decisions as numbered ADRs as they come up. A decision that changes direction gets a new record that supersedes the old one — history stays readable.

We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Update ADR-0003 — we revisited the decision and switched from REST to gRPC

Any stage: Glossary — cmk:glossary

Lock the shared vocabulary — one term, one meaning, used identically in docs, code, and tickets. Fires on its own whenever a term is coined, contested, or drifting.

Create a glossary from our existing requirements and design docs
We keep saying relay and router for the same thing — lock one term in the glossary

Any stage: Learnings & rules — cmk:learn + cmk:rule

Capture non-obvious knowledge into docs/knowledge/, then promote what should be enforced into docs/rules/.

Save that Redis connection pooling gotcha we just discovered
Promote the Redis pooling learning to an infrastructure rule
Add a rule that all API endpoints must validate auth tokens before processing

Any stage: Codebase docs for AI — cmk:codebase-docs

Maintain a hierarchical tree of short navigation docs under docs/ai/ so an agent (or a human skimming) finds the right source file fast.

Set up AI docs for this repo
Update the AI docs — I added a new TUI input handler

Repo setup — cmk:repo-setup and its facets

Orchestrates project layout, toolchain, agent instructions, MCP config, local stack, infra, and CI/CD through init, adopt, update, and verify passes; each facet also runs standalone.

Set up this repo
Make local dev worktree-safe
Structure our CI

Vendoring & sync — cmk:agent-vendors + cmk:sync

One canonical .agents/skills/ home with the thinnest adapter each coding-agent vendor needs, kept current with upstream through lock-tracked semantic reconciliation — never a blind overwrite of local adaptations.

Vendor the devkit skills into this repo
Sync our vendored skills with upstream

Delivery — cmk:delivery-pipeline and its phases

Deliver tracker-tracked work end to end — intake, spec and plan, implementation, review, ship — autonomously, or invoke any phase skill standalone.

Work on TICKET-123
Review this PR
Generate a handoff prompt so I can continue this in another agent

Throughout, skills warn when a change conflicts with an upstream doc — requirements scope, a recorded decision, a glossary term — and you decide how to resolve it; accepted changes cascade downstream.

Works With

Claude Code

Install via any path — vendored adapters, skills.sh, or the plugin. Skills are auto-discovered and available as slash commands. See INSTALLATION.md for setup.

OpenCode

Direct-discovery vendor: install via skills.sh, or vendor the skills and point OpenCode's skill-paths config at .agents/skills/. See INSTALLATION.md for setup.

Specialized Agents

The /docs directory is the shared protocol. Any agent — research, architecture, planning, QA — can participate by reading from and writing to the same structure:

┌──────────┐ ┌────────────────────┐ ┌──────────────┐
│ Research │────▶│ Requirements │────▶│ Design │
│ Agent │ │ (cmk:requirements) │ │ (cmk:design) │
└──────────┘ └────────────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Knowledge │
│ (cmk:learn) │
│ │ │
│ ▼ │
│ Rules │
│ (cmk:rule) │
└──────────────┘
  • A research agent saves findings → cmk:requirements reads them to draft requirements
  • A planning agent reads the design → breaks it into tasks
  • A QA agent reads the design → generates test cases from acceptance criteria
  • A debugging session surfaces gotchas → cmk:learn captures them → cmk:rule promotes to standards

The docs are the interface between agents. Each agent reads what it needs, writes what it produces, and the next agent picks up where the last one left off.

Documentation Structure

Refer to docs/README.md for the full directory structure and conventions.

Contributing

See CONTRIBUTING.md for how skill changes are proposed, reviewed, and upstreamed from a repo that vendored them.

License

MIT © 2026 CommandOSS Labs

About

Documentation guideline supporting development lifecycle at CommandOSS

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

AI DevKit

Evolvable agent skills for the full software development lifecycle — requirements, design, decisions, repo setup, and delivery. Vendored into your repo, they adapt to how your team works and still sync with upstream.

Documentation-first: agents and humans work from the same knowledge, memory, and context — structured docs are the shared state.

Install

Three paths — vendored with sync (recommended, fully evolvable), skills.sh, or a zero-setup plugin trial. The install path decides whether your per-repo adaptations survive upgrades; INSTALLATION.md covers every scenario and its consequences. Tell your agent:

Fetch and follow https://raw.githubusercontent.com/CommandOSSLabs/ai-devkit/refs/heads/main/INSTALLATION.md

Quick Start

Skills trigger from natural language — describe what you need and the right one picks it up (slash commands like /cmk:requirements work too). Straight after installing, try any of these:

Set up this repo
We just discussed the billing system requirements — save that as requirements
We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Work on TICKET-123

Each request lands in the right skill, which asks only what it must and writes the result where it belongs under /docs. The rest of this README is depth — the skills work without reading it.

How It Works

One mental model runs through every skill: the SDLC is a flow of documents that build on each other, and the repository's /docs tree is where that flow lives.

Requirements ──▶ Design ──▶ Plan ──▶ Implement ──▶ Simplify ──▶ Review ──▶ Ship
what & why how, as an └────────── delivery family ──────────┘
implementation-
agnostic spec
cross-cutting at every stage:
Decisions (cmk:adr) · Glossary (cmk:glossary) · Learnings (cmk:learn) · Rules (cmk:rule)

Three principles keep the flow coherent:

  • Guidance over forms. The requirements and design skills follow shaping directives, not fixed templates — they interview when the input is still an idea and distill documents specific to your product rather than generic ones.
  • Coherence cascades. Docs cross-reference each other, so changing one means checking what it links to and what links back. Skills detect conflicts — a design contradicting a locked decision, a term drifting from the glossary — and flag them for you to resolve instead of silently overriding.
  • Progressive disclosure. Every docs folder README is a concise navigation index; depth lives one level down. Agents and humans read only what the task at hand needs.

The full phase definitions live in docs/design/sdl-phases.md.

Motivation

AI agents lose context between sessions. Teams repeat requirements, re-explain decisions, and re-establish scope every time a new conversation starts. There is no shared memory between agents and humans.

This devkit solves that by using structured documentation as the shared state. The repository becomes the single source of truth — agents read it to get up to speed, humans and agents write to it to preserve decisions, and both act on the same base of knowledge.

This is a guideline, not a rulebook. The goal is better structure, not more files. Teams can draft in Notion, Google Docs, or conversation — but finalized, development-critical context should live in the repository.

Skills

SkillPurpose
cmk:docsBootstrap or update the /docs directory structure
cmk:requirementsCreate or iterate product/feature requirements in docs/requirements/
cmk:designCreate or iterate distilled design in docs/design/ — system-wide or per-feature
cmk:adrCreate or update decisions in docs/decisions/
cmk:glossaryCreate or maintain the shared normative glossary of systems, components, and actors
cmk:codebase-docsGenerate or update hierarchical, AI-navigable docs under docs/ai/
cmk:learnExtract and record non-obvious learnings and gotchas
cmk:ruleCodify engineering standards into docs/rules/
cmk:project-layoutEstablish or audit a role-first monorepo layout and package placement
cmk:toolchainAssign tool roles, pin runtime versions, and set a gitignore baseline
cmk:agent-instructionsMaintain a thin, multi-vendor root instruction file backed by docs/rules/
cmk:mcp-configSet up checked-in, per-vendor MCP server configuration
cmk:local-stackCreate or iterate worktree-isolated local development stacks
cmk:infraEstablish or audit infrastructure-as-code packages and environment boundaries
cmk:cicdStructure CI, deployment, and policy automation around GitHub Actions
cmk:enclaveAttested enclave boundary, secret packing, and TEE applications (Nautilus / Nitro)
cmk:test-resourcesShare an expensive test resource (container, database, external service) safely across a parallel test runner
cmk:rustIdiomatic Rust practices — error handling, module boundaries, feature flags, lint/test wiring, dependency hygiene — inside a design-decided crate
cmk:testcontainersStart and share a throwaway service container from Rust test code via the testcontainers crate
cmk:agent-vendorsVendor the kit's skills into one canonical home with per-vendor adapters
cmk:syncReconcile vendored skills with upstream without flattening local evolution
cmk:repo-setupOrchestrate every setup facet into one bootstrap, adopt, update, or verify pass

Delivery family

SkillPurpose
cmk:delivery-workflowThe tracker-neutral contract every delivery skill operates inside — reconciliation loop, readiness vocabulary, acceptance criteria
cmk:discover-effortsReconcile an uncertain body of work into a complete tracker issue set before delivery begins
cmk:delivery-intakePull full context for a tracker issue, set up its branch/worktree, and move it to in-progress
cmk:delivery-spec-planProduce a low-level design spec and an executable, dependency-aware implementation plan
cmk:delivery-simplifyBehavior-preserving quality cleanup (reuse, simplification, efficiency, altitude) — phase 3b after implement
cmk:delivery-reviewMulti-lens review — correctness, quality, spec/AC compliance, security, and more — with verified findings
cmk:delivery-shipFinalize delivery: verified evidence, a review-ready PR, and tracker reconciliation
cmk:delivery-handoffGenerate a self-contained handoff prompt to continue tracked work in a different agent
cmk:delivery-pipelineEnd-to-end autonomous delivery of one issue, or a dependency-aware cluster, across phases 1–5 (incl. 3b)

Knowledge family

SkillPurpose
cmk:sui-sdkgRPC-first guidance for talking to a Sui full node — JSON-RPC is deprecated
cmk:sui-devstackWorktree-safe local Sui network setup for development and e2e tests

Usage

A deeper tour, in the order docs build on each other when starting a new project. Every line in the blocks below is a real trigger — paste and go.

1. Scaffold — cmk:docs

Set up the /docs structure once; re-run it to verify or update as the project grows.

Set up the docs structure for this project
Check if our docs structure is up to date with the latest devkit

2. Requirements — cmk:requirements

Define what to build and why — the upstream source of truth everything downstream references. Works from conversation, Notion/Google Docs links, or an interview when all you have is an idea.

We just discussed the billing system requirements — save that as requirements
Use this Notion doc to draft requirements for the new onboarding flow: [link]
Update the requirements — we're cutting the SSO requirement from v1

3. Design — cmk:design

Design how to build it as an implementation-agnostic spec — system-wide or per-feature. Checks upstream requirements and decisions for conflicts; cascades accepted changes downstream.

Draft a system design for our payments service
Create a feature-level design for checkout retry logic
Update the system design — we switched from PostgreSQL to DynamoDB

Any stage: Decisions — cmk:adr

Record system-level decisions as numbered ADRs as they come up. A decision that changes direction gets a new record that supersedes the old one — history stays readable.

We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Update ADR-0003 — we revisited the decision and switched from REST to gRPC

Any stage: Glossary — cmk:glossary

Lock the shared vocabulary — one term, one meaning, used identically in docs, code, and tickets. Fires on its own whenever a term is coined, contested, or drifting.

Create a glossary from our existing requirements and design docs
We keep saying relay and router for the same thing — lock one term in the glossary

Any stage: Learnings & rules — cmk:learn + cmk:rule

Capture non-obvious knowledge into docs/knowledge/, then promote what should be enforced into docs/rules/.

Save that Redis connection pooling gotcha we just discovered
Promote the Redis pooling learning to an infrastructure rule
Add a rule that all API endpoints must validate auth tokens before processing

Any stage: Codebase docs for AI — cmk:codebase-docs

Maintain a hierarchical tree of short navigation docs under docs/ai/ so an agent (or a human skimming) finds the right source file fast.

Set up AI docs for this repo
Update the AI docs — I added a new TUI input handler

Repo setup — cmk:repo-setup and its facets

Orchestrates project layout, toolchain, agent instructions, MCP config, local stack, infra, and CI/CD through init, adopt, update, and verify passes; each facet also runs standalone.

Set up this repo
Make local dev worktree-safe
Structure our CI

Vendoring & sync — cmk:agent-vendors + cmk:sync

One canonical .agents/skills/ home with the thinnest adapter each coding-agent vendor needs, kept current with upstream through lock-tracked semantic reconciliation — never a blind overwrite of local adaptations.

Vendor the devkit skills into this repo
Sync our vendored skills with upstream

Delivery — cmk:delivery-pipeline and its phases

Deliver tracker-tracked work end to end — intake, spec and plan, implementation, review, ship — autonomously, or invoke any phase skill standalone.

Work on TICKET-123
Review this PR
Generate a handoff prompt so I can continue this in another agent

Throughout, skills warn when a change conflicts with an upstream doc — requirements scope, a recorded decision, a glossary term — and you decide how to resolve it; accepted changes cascade downstream.

Works With

Claude Code

Install via any path — vendored adapters, skills.sh, or the plugin. Skills are auto-discovered and available as slash commands. See INSTALLATION.md for setup.

OpenCode

Direct-discovery vendor: install via skills.sh, or vendor the skills and point OpenCode's skill-paths config at .agents/skills/. See INSTALLATION.md for setup.

Specialized Agents

The /docs directory is the shared protocol. Any agent — research, architecture, planning, QA — can participate by reading from and writing to the same structure:

┌──────────┐ ┌────────────────────┐ ┌──────────────┐
│ Research │────▶│ Requirements │────▶│ Design │
│ Agent │ │ (cmk:requirements) │ │ (cmk:design) │
└──────────┘ └────────────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Knowledge │
│ (cmk:learn) │
│ │ │
│ ▼ │
│ Rules │
│ (cmk:rule) │
└──────────────┘
  • A research agent saves findings → cmk:requirements reads them to draft requirements
  • A planning agent reads the design → breaks it into tasks
  • A QA agent reads the design → generates test cases from acceptance criteria
  • A debugging session surfaces gotchas → cmk:learn captures them → cmk:rule promotes to standards

The docs are the interface between agents. Each agent reads what it needs, writes what it produces, and the next agent picks up where the last one left off.

Documentation Structure

Refer to docs/README.md for the full directory structure and conventions.

Contributing

See CONTRIBUTING.md for how skill changes are proposed, reviewed, and upstreamed from a repo that vendored them.

License

MIT © 2026 CommandOSS Labs

About

Documentation guideline supporting development lifecycle at CommandOSS

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AI DevKit

Evolvable agent skills for the full software development lifecycle — requirements, design, decisions, repo setup, and delivery. Vendored into your repo, they adapt to how your team works and still sync with upstream.

Documentation-first: agents and humans work from the same knowledge, memory, and context — structured docs are the shared state.

Install

Three paths — vendored with sync (recommended, fully evolvable), skills.sh, or a zero-setup plugin trial. The install path decides whether your per-repo adaptations survive upgrades; INSTALLATION.md covers every scenario and its consequences. Tell your agent:

Fetch and follow https://raw.githubusercontent.com/CommandOSSLabs/ai-devkit/refs/heads/main/INSTALLATION.md

Quick Start

Skills trigger from natural language — describe what you need and the right one picks it up (slash commands like /cmk:requirements work too). Straight after installing, try any of these:

Set up this repo
We just discussed the billing system requirements — save that as requirements
We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Work on TICKET-123

Each request lands in the right skill, which asks only what it must and writes the result where it belongs under /docs. The rest of this README is depth — the skills work without reading it.

How It Works

One mental model runs through every skill: the SDLC is a flow of documents that build on each other, and the repository's /docs tree is where that flow lives.

Requirements ──▶ Design ──▶ Plan ──▶ Implement ──▶ Simplify ──▶ Review ──▶ Ship
what & why how, as an └────────── delivery family ──────────┘
implementation-
agnostic spec
cross-cutting at every stage:
Decisions (cmk:adr) · Glossary (cmk:glossary) · Learnings (cmk:learn) · Rules (cmk:rule)

Three principles keep the flow coherent:

  • Guidance over forms. The requirements and design skills follow shaping directives, not fixed templates — they interview when the input is still an idea and distill documents specific to your product rather than generic ones.
  • Coherence cascades. Docs cross-reference each other, so changing one means checking what it links to and what links back. Skills detect conflicts — a design contradicting a locked decision, a term drifting from the glossary — and flag them for you to resolve instead of silently overriding.
  • Progressive disclosure. Every docs folder README is a concise navigation index; depth lives one level down. Agents and humans read only what the task at hand needs.

The full phase definitions live in docs/design/sdl-phases.md.

Motivation

AI agents lose context between sessions. Teams repeat requirements, re-explain decisions, and re-establish scope every time a new conversation starts. There is no shared memory between agents and humans.

This devkit solves that by using structured documentation as the shared state. The repository becomes the single source of truth — agents read it to get up to speed, humans and agents write to it to preserve decisions, and both act on the same base of knowledge.

This is a guideline, not a rulebook. The goal is better structure, not more files. Teams can draft in Notion, Google Docs, or conversation — but finalized, development-critical context should live in the repository.

Skills

SkillPurpose
cmk:docsBootstrap or update the /docs directory structure
cmk:requirementsCreate or iterate product/feature requirements in docs/requirements/
cmk:designCreate or iterate distilled design in docs/design/ — system-wide or per-feature
cmk:adrCreate or update decisions in docs/decisions/
cmk:glossaryCreate or maintain the shared normative glossary of systems, components, and actors
cmk:codebase-docsGenerate or update hierarchical, AI-navigable docs under docs/ai/
cmk:learnExtract and record non-obvious learnings and gotchas
cmk:ruleCodify engineering standards into docs/rules/
cmk:project-layoutEstablish or audit a role-first monorepo layout and package placement
cmk:toolchainAssign tool roles, pin runtime versions, and set a gitignore baseline
cmk:agent-instructionsMaintain a thin, multi-vendor root instruction file backed by docs/rules/
cmk:mcp-configSet up checked-in, per-vendor MCP server configuration
cmk:local-stackCreate or iterate worktree-isolated local development stacks
cmk:infraEstablish or audit infrastructure-as-code packages and environment boundaries
cmk:cicdStructure CI, deployment, and policy automation around GitHub Actions
cmk:enclaveAttested enclave boundary, secret packing, and TEE applications (Nautilus / Nitro)
cmk:test-resourcesShare an expensive test resource (container, database, external service) safely across a parallel test runner
cmk:rustIdiomatic Rust practices — error handling, module boundaries, feature flags, lint/test wiring, dependency hygiene — inside a design-decided crate
cmk:testcontainersStart and share a throwaway service container from Rust test code via the testcontainers crate
cmk:agent-vendorsVendor the kit's skills into one canonical home with per-vendor adapters
cmk:syncReconcile vendored skills with upstream without flattening local evolution
cmk:repo-setupOrchestrate every setup facet into one bootstrap, adopt, update, or verify pass

Delivery family

SkillPurpose
cmk:delivery-workflowThe tracker-neutral contract every delivery skill operates inside — reconciliation loop, readiness vocabulary, acceptance criteria
cmk:discover-effortsReconcile an uncertain body of work into a complete tracker issue set before delivery begins
cmk:delivery-intakePull full context for a tracker issue, set up its branch/worktree, and move it to in-progress
cmk:delivery-spec-planProduce a low-level design spec and an executable, dependency-aware implementation plan
cmk:delivery-simplifyBehavior-preserving quality cleanup (reuse, simplification, efficiency, altitude) — phase 3b after implement
cmk:delivery-reviewMulti-lens review — correctness, quality, spec/AC compliance, security, and more — with verified findings
cmk:delivery-shipFinalize delivery: verified evidence, a review-ready PR, and tracker reconciliation
cmk:delivery-handoffGenerate a self-contained handoff prompt to continue tracked work in a different agent
cmk:delivery-pipelineEnd-to-end autonomous delivery of one issue, or a dependency-aware cluster, across phases 1–5 (incl. 3b)

Knowledge family

SkillPurpose
cmk:sui-sdkgRPC-first guidance for talking to a Sui full node — JSON-RPC is deprecated
cmk:sui-devstackWorktree-safe local Sui network setup for development and e2e tests

Usage

A deeper tour, in the order docs build on each other when starting a new project. Every line in the blocks below is a real trigger — paste and go.

1. Scaffold — cmk:docs

Set up the /docs structure once; re-run it to verify or update as the project grows.

Set up the docs structure for this project
Check if our docs structure is up to date with the latest devkit

2. Requirements — cmk:requirements

Define what to build and why — the upstream source of truth everything downstream references. Works from conversation, Notion/Google Docs links, or an interview when all you have is an idea.

We just discussed the billing system requirements — save that as requirements
Use this Notion doc to draft requirements for the new onboarding flow: [link]
Update the requirements — we're cutting the SSO requirement from v1

3. Design — cmk:design

Design how to build it as an implementation-agnostic spec — system-wide or per-feature. Checks upstream requirements and decisions for conflicts; cascades accepted changes downstream.

Draft a system design for our payments service
Create a feature-level design for checkout retry logic
Update the system design — we switched from PostgreSQL to DynamoDB

Any stage: Decisions — cmk:adr

Record system-level decisions as numbered ADRs as they come up. A decision that changes direction gets a new record that supersedes the old one — history stays readable.

We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Update ADR-0003 — we revisited the decision and switched from REST to gRPC

Any stage: Glossary — cmk:glossary

Lock the shared vocabulary — one term, one meaning, used identically in docs, code, and tickets. Fires on its own whenever a term is coined, contested, or drifting.

Create a glossary from our existing requirements and design docs
We keep saying relay and router for the same thing — lock one term in the glossary

Any stage: Learnings & rules — cmk:learn + cmk:rule

Capture non-obvious knowledge into docs/knowledge/, then promote what should be enforced into docs/rules/.

Save that Redis connection pooling gotcha we just discovered
Promote the Redis pooling learning to an infrastructure rule
Add a rule that all API endpoints must validate auth tokens before processing

Any stage: Codebase docs for AI — cmk:codebase-docs

Maintain a hierarchical tree of short navigation docs under docs/ai/ so an agent (or a human skimming) finds the right source file fast.

Set up AI docs for this repo
Update the AI docs — I added a new TUI input handler

Repo setup — cmk:repo-setup and its facets

Orchestrates project layout, toolchain, agent instructions, MCP config, local stack, infra, and CI/CD through init, adopt, update, and verify passes; each facet also runs standalone.

Set up this repo
Make local dev worktree-safe
Structure our CI

Vendoring & sync — cmk:agent-vendors + cmk:sync

One canonical .agents/skills/ home with the thinnest adapter each coding-agent vendor needs, kept current with upstream through lock-tracked semantic reconciliation — never a blind overwrite of local adaptations.

Vendor the devkit skills into this repo
Sync our vendored skills with upstream

Delivery — cmk:delivery-pipeline and its phases

Deliver tracker-tracked work end to end — intake, spec and plan, implementation, review, ship — autonomously, or invoke any phase skill standalone.

Work on TICKET-123
Review this PR
Generate a handoff prompt so I can continue this in another agent

Throughout, skills warn when a change conflicts with an upstream doc — requirements scope, a recorded decision, a glossary term — and you decide how to resolve it; accepted changes cascade downstream.

Works With

Claude Code

Install via any path — vendored adapters, skills.sh, or the plugin. Skills are auto-discovered and available as slash commands. See INSTALLATION.md for setup.

OpenCode

Direct-discovery vendor: install via skills.sh, or vendor the skills and point OpenCode's skill-paths config at .agents/skills/. See INSTALLATION.md for setup.

Specialized Agents

The /docs directory is the shared protocol. Any agent — research, architecture, planning, QA — can participate by reading from and writing to the same structure:

┌──────────┐ ┌────────────────────┐ ┌──────────────┐
│ Research │────▶│ Requirements │────▶│ Design │
│ Agent │ │ (cmk:requirements) │ │ (cmk:design) │
└──────────┘ └────────────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Knowledge │
│ (cmk:learn) │
│ │ │
│ ▼ │
│ Rules │
│ (cmk:rule) │
└──────────────┘
  • A research agent saves findings → cmk:requirements reads them to draft requirements
  • A planning agent reads the design → breaks it into tasks
  • A QA agent reads the design → generates test cases from acceptance criteria
  • A debugging session surfaces gotchas → cmk:learn captures them → cmk:rule promotes to standards

The docs are the interface between agents. Each agent reads what it needs, writes what it produces, and the next agent picks up where the last one left off.

Documentation Structure

Refer to docs/README.md for the full directory structure and conventions.

Contributing

See CONTRIBUTING.md for how skill changes are proposed, reviewed, and upstreamed from a repo that vendored them.

License

MIT © 2026 CommandOSS Labs

About

Documentation guideline supporting development lifecycle at CommandOSS

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AI DevKit

Evolvable agent skills for the full software development lifecycle — requirements, design, decisions, repo setup, and delivery. Vendored into your repo, they adapt to how your team works and still sync with upstream.

Documentation-first: agents and humans work from the same knowledge, memory, and context — structured docs are the shared state.

Install

Three paths — vendored with sync (recommended, fully evolvable), skills.sh, or a zero-setup plugin trial. The install path decides whether your per-repo adaptations survive upgrades; INSTALLATION.md covers every scenario and its consequences. Tell your agent:

Fetch and follow https://raw.githubusercontent.com/CommandOSSLabs/ai-devkit/refs/heads/main/INSTALLATION.md

Quick Start

Skills trigger from natural language — describe what you need and the right one picks it up (slash commands like /cmk:requirements work too). Straight after installing, try any of these:

Set up this repo
We just discussed the billing system requirements — save that as requirements
We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Work on TICKET-123

Each request lands in the right skill, which asks only what it must and writes the result where it belongs under /docs. The rest of this README is depth — the skills work without reading it.

How It Works

One mental model runs through every skill: the SDLC is a flow of documents that build on each other, and the repository's /docs tree is where that flow lives.

Requirements ──▶ Design ──▶ Plan ──▶ Implement ──▶ Simplify ──▶ Review ──▶ Ship
what & why how, as an └────────── delivery family ──────────┘
implementation-
agnostic spec
cross-cutting at every stage:
Decisions (cmk:adr) · Glossary (cmk:glossary) · Learnings (cmk:learn) · Rules (cmk:rule)

Three principles keep the flow coherent:

  • Guidance over forms. The requirements and design skills follow shaping directives, not fixed templates — they interview when the input is still an idea and distill documents specific to your product rather than generic ones.
  • Coherence cascades. Docs cross-reference each other, so changing one means checking what it links to and what links back. Skills detect conflicts — a design contradicting a locked decision, a term drifting from the glossary — and flag them for you to resolve instead of silently overriding.
  • Progressive disclosure. Every docs folder README is a concise navigation index; depth lives one level down. Agents and humans read only what the task at hand needs.

The full phase definitions live in docs/design/sdl-phases.md.

Motivation

AI agents lose context between sessions. Teams repeat requirements, re-explain decisions, and re-establish scope every time a new conversation starts. There is no shared memory between agents and humans.

This devkit solves that by using structured documentation as the shared state. The repository becomes the single source of truth — agents read it to get up to speed, humans and agents write to it to preserve decisions, and both act on the same base of knowledge.

This is a guideline, not a rulebook. The goal is better structure, not more files. Teams can draft in Notion, Google Docs, or conversation — but finalized, development-critical context should live in the repository.

Skills

SkillPurpose
cmk:docsBootstrap or update the /docs directory structure
cmk:requirementsCreate or iterate product/feature requirements in docs/requirements/
cmk:designCreate or iterate distilled design in docs/design/ — system-wide or per-feature
cmk:adrCreate or update decisions in docs/decisions/
cmk:glossaryCreate or maintain the shared normative glossary of systems, components, and actors
cmk:codebase-docsGenerate or update hierarchical, AI-navigable docs under docs/ai/
cmk:learnExtract and record non-obvious learnings and gotchas
cmk:ruleCodify engineering standards into docs/rules/
cmk:project-layoutEstablish or audit a role-first monorepo layout and package placement
cmk:toolchainAssign tool roles, pin runtime versions, and set a gitignore baseline
cmk:agent-instructionsMaintain a thin, multi-vendor root instruction file backed by docs/rules/
cmk:mcp-configSet up checked-in, per-vendor MCP server configuration
cmk:local-stackCreate or iterate worktree-isolated local development stacks
cmk:infraEstablish or audit infrastructure-as-code packages and environment boundaries
cmk:cicdStructure CI, deployment, and policy automation around GitHub Actions
cmk:enclaveAttested enclave boundary, secret packing, and TEE applications (Nautilus / Nitro)
cmk:test-resourcesShare an expensive test resource (container, database, external service) safely across a parallel test runner
cmk:rustIdiomatic Rust practices — error handling, module boundaries, feature flags, lint/test wiring, dependency hygiene — inside a design-decided crate
cmk:testcontainersStart and share a throwaway service container from Rust test code via the testcontainers crate
cmk:agent-vendorsVendor the kit's skills into one canonical home with per-vendor adapters
cmk:syncReconcile vendored skills with upstream without flattening local evolution
cmk:repo-setupOrchestrate every setup facet into one bootstrap, adopt, update, or verify pass

Delivery family

SkillPurpose
cmk:delivery-workflowThe tracker-neutral contract every delivery skill operates inside — reconciliation loop, readiness vocabulary, acceptance criteria
cmk:discover-effortsReconcile an uncertain body of work into a complete tracker issue set before delivery begins
cmk:delivery-intakePull full context for a tracker issue, set up its branch/worktree, and move it to in-progress
cmk:delivery-spec-planProduce a low-level design spec and an executable, dependency-aware implementation plan
cmk:delivery-simplifyBehavior-preserving quality cleanup (reuse, simplification, efficiency, altitude) — phase 3b after implement
cmk:delivery-reviewMulti-lens review — correctness, quality, spec/AC compliance, security, and more — with verified findings
cmk:delivery-shipFinalize delivery: verified evidence, a review-ready PR, and tracker reconciliation
cmk:delivery-handoffGenerate a self-contained handoff prompt to continue tracked work in a different agent
cmk:delivery-pipelineEnd-to-end autonomous delivery of one issue, or a dependency-aware cluster, across phases 1–5 (incl. 3b)

Knowledge family

SkillPurpose
cmk:sui-sdkgRPC-first guidance for talking to a Sui full node — JSON-RPC is deprecated
cmk:sui-devstackWorktree-safe local Sui network setup for development and e2e tests

Usage

A deeper tour, in the order docs build on each other when starting a new project. Every line in the blocks below is a real trigger — paste and go.

1. Scaffold — cmk:docs

Set up the /docs structure once; re-run it to verify or update as the project grows.

Set up the docs structure for this project
Check if our docs structure is up to date with the latest devkit

2. Requirements — cmk:requirements

Define what to build and why — the upstream source of truth everything downstream references. Works from conversation, Notion/Google Docs links, or an interview when all you have is an idea.

We just discussed the billing system requirements — save that as requirements
Use this Notion doc to draft requirements for the new onboarding flow: [link]
Update the requirements — we're cutting the SSO requirement from v1

3. Design — cmk:design

Design how to build it as an implementation-agnostic spec — system-wide or per-feature. Checks upstream requirements and decisions for conflicts; cascades accepted changes downstream.

Draft a system design for our payments service
Create a feature-level design for checkout retry logic
Update the system design — we switched from PostgreSQL to DynamoDB

Any stage: Decisions — cmk:adr

Record system-level decisions as numbered ADRs as they come up. A decision that changes direction gets a new record that supersedes the old one — history stays readable.

We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Update ADR-0003 — we revisited the decision and switched from REST to gRPC

Any stage: Glossary — cmk:glossary

Lock the shared vocabulary — one term, one meaning, used identically in docs, code, and tickets. Fires on its own whenever a term is coined, contested, or drifting.

Create a glossary from our existing requirements and design docs
We keep saying relay and router for the same thing — lock one term in the glossary

Any stage: Learnings & rules — cmk:learn + cmk:rule

Capture non-obvious knowledge into docs/knowledge/, then promote what should be enforced into docs/rules/.

Save that Redis connection pooling gotcha we just discovered
Promote the Redis pooling learning to an infrastructure rule
Add a rule that all API endpoints must validate auth tokens before processing

Any stage: Codebase docs for AI — cmk:codebase-docs

Maintain a hierarchical tree of short navigation docs under docs/ai/ so an agent (or a human skimming) finds the right source file fast.

Set up AI docs for this repo
Update the AI docs — I added a new TUI input handler

Repo setup — cmk:repo-setup and its facets

Orchestrates project layout, toolchain, agent instructions, MCP config, local stack, infra, and CI/CD through init, adopt, update, and verify passes; each facet also runs standalone.

Set up this repo
Make local dev worktree-safe
Structure our CI

Vendoring & sync — cmk:agent-vendors + cmk:sync

One canonical .agents/skills/ home with the thinnest adapter each coding-agent vendor needs, kept current with upstream through lock-tracked semantic reconciliation — never a blind overwrite of local adaptations.

Vendor the devkit skills into this repo
Sync our vendored skills with upstream

Delivery — cmk:delivery-pipeline and its phases

Deliver tracker-tracked work end to end — intake, spec and plan, implementation, review, ship — autonomously, or invoke any phase skill standalone.

Work on TICKET-123
Review this PR
Generate a handoff prompt so I can continue this in another agent

Throughout, skills warn when a change conflicts with an upstream doc — requirements scope, a recorded decision, a glossary term — and you decide how to resolve it; accepted changes cascade downstream.

Works With

Claude Code

Install via any path — vendored adapters, skills.sh, or the plugin. Skills are auto-discovered and available as slash commands. See INSTALLATION.md for setup.

OpenCode

Direct-discovery vendor: install via skills.sh, or vendor the skills and point OpenCode's skill-paths config at .agents/skills/. See INSTALLATION.md for setup.

Specialized Agents

The /docs directory is the shared protocol. Any agent — research, architecture, planning, QA — can participate by reading from and writing to the same structure:

┌──────────┐ ┌────────────────────┐ ┌──────────────┐
│ Research │────▶│ Requirements │────▶│ Design │
│ Agent │ │ (cmk:requirements) │ │ (cmk:design) │
└──────────┘ └────────────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Knowledge │
│ (cmk:learn) │
│ │ │
│ ▼ │
│ Rules │
│ (cmk:rule) │
└──────────────┘
  • A research agent saves findings → cmk:requirements reads them to draft requirements
  • A planning agent reads the design → breaks it into tasks
  • A QA agent reads the design → generates test cases from acceptance criteria
  • A debugging session surfaces gotchas → cmk:learn captures them → cmk:rule promotes to standards

The docs are the interface between agents. Each agent reads what it needs, writes what it produces, and the next agent picks up where the last one left off.

Documentation Structure

Refer to docs/README.md for the full directory structure and conventions.

Contributing

See CONTRIBUTING.md for how skill changes are proposed, reviewed, and upstreamed from a repo that vendored them.

License

MIT © 2026 CommandOSS Labs

About

Documentation guideline supporting development lifecycle at CommandOSS

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

AI DevKit

Evolvable agent skills for the full software development lifecycle — requirements, design, decisions, repo setup, and delivery. Vendored into your repo, they adapt to how your team works and still sync with upstream.

Documentation-first: agents and humans work from the same knowledge, memory, and context — structured docs are the shared state.

Install

Three paths — vendored with sync (recommended, fully evolvable), skills.sh, or a zero-setup plugin trial. The install path decides whether your per-repo adaptations survive upgrades; INSTALLATION.md covers every scenario and its consequences. Tell your agent:

Fetch and follow https://raw.githubusercontent.com/CommandOSSLabs/ai-devkit/refs/heads/main/INSTALLATION.md

Quick Start

Skills trigger from natural language — describe what you need and the right one picks it up (slash commands like /cmk:requirements work too). Straight after installing, try any of these:

Set up this repo
We just discussed the billing system requirements — save that as requirements
We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Work on TICKET-123

Each request lands in the right skill, which asks only what it must and writes the result where it belongs under /docs. The rest of this README is depth — the skills work without reading it.

How It Works

One mental model runs through every skill: the SDLC is a flow of documents that build on each other, and the repository's /docs tree is where that flow lives.

Requirements ──▶ Design ──▶ Plan ──▶ Implement ──▶ Simplify ──▶ Review ──▶ Ship
what & why how, as an └────────── delivery family ──────────┘
implementation-
agnostic spec
cross-cutting at every stage:
Decisions (cmk:adr) · Glossary (cmk:glossary) · Learnings (cmk:learn) · Rules (cmk:rule)

Three principles keep the flow coherent:

  • Guidance over forms. The requirements and design skills follow shaping directives, not fixed templates — they interview when the input is still an idea and distill documents specific to your product rather than generic ones.
  • Coherence cascades. Docs cross-reference each other, so changing one means checking what it links to and what links back. Skills detect conflicts — a design contradicting a locked decision, a term drifting from the glossary — and flag them for you to resolve instead of silently overriding.
  • Progressive disclosure. Every docs folder README is a concise navigation index; depth lives one level down. Agents and humans read only what the task at hand needs.

The full phase definitions live in docs/design/sdl-phases.md.

Motivation

AI agents lose context between sessions. Teams repeat requirements, re-explain decisions, and re-establish scope every time a new conversation starts. There is no shared memory between agents and humans.

This devkit solves that by using structured documentation as the shared state. The repository becomes the single source of truth — agents read it to get up to speed, humans and agents write to it to preserve decisions, and both act on the same base of knowledge.

This is a guideline, not a rulebook. The goal is better structure, not more files. Teams can draft in Notion, Google Docs, or conversation — but finalized, development-critical context should live in the repository.

Skills

SkillPurpose
cmk:docsBootstrap or update the /docs directory structure
cmk:requirementsCreate or iterate product/feature requirements in docs/requirements/
cmk:designCreate or iterate distilled design in docs/design/ — system-wide or per-feature
cmk:adrCreate or update decisions in docs/decisions/
cmk:glossaryCreate or maintain the shared normative glossary of systems, components, and actors
cmk:codebase-docsGenerate or update hierarchical, AI-navigable docs under docs/ai/
cmk:learnExtract and record non-obvious learnings and gotchas
cmk:ruleCodify engineering standards into docs/rules/
cmk:project-layoutEstablish or audit a role-first monorepo layout and package placement
cmk:toolchainAssign tool roles, pin runtime versions, and set a gitignore baseline
cmk:agent-instructionsMaintain a thin, multi-vendor root instruction file backed by docs/rules/
cmk:mcp-configSet up checked-in, per-vendor MCP server configuration
cmk:local-stackCreate or iterate worktree-isolated local development stacks
cmk:infraEstablish or audit infrastructure-as-code packages and environment boundaries
cmk:cicdStructure CI, deployment, and policy automation around GitHub Actions
cmk:enclaveAttested enclave boundary, secret packing, and TEE applications (Nautilus / Nitro)
cmk:test-resourcesShare an expensive test resource (container, database, external service) safely across a parallel test runner
cmk:rustIdiomatic Rust practices — error handling, module boundaries, feature flags, lint/test wiring, dependency hygiene — inside a design-decided crate
cmk:testcontainersStart and share a throwaway service container from Rust test code via the testcontainers crate
cmk:agent-vendorsVendor the kit's skills into one canonical home with per-vendor adapters
cmk:syncReconcile vendored skills with upstream without flattening local evolution
cmk:repo-setupOrchestrate every setup facet into one bootstrap, adopt, update, or verify pass

Delivery family

SkillPurpose
cmk:delivery-workflowThe tracker-neutral contract every delivery skill operates inside — reconciliation loop, readiness vocabulary, acceptance criteria
cmk:discover-effortsReconcile an uncertain body of work into a complete tracker issue set before delivery begins
cmk:delivery-intakePull full context for a tracker issue, set up its branch/worktree, and move it to in-progress
cmk:delivery-spec-planProduce a low-level design spec and an executable, dependency-aware implementation plan
cmk:delivery-simplifyBehavior-preserving quality cleanup (reuse, simplification, efficiency, altitude) — phase 3b after implement
cmk:delivery-reviewMulti-lens review — correctness, quality, spec/AC compliance, security, and more — with verified findings
cmk:delivery-shipFinalize delivery: verified evidence, a review-ready PR, and tracker reconciliation
cmk:delivery-handoffGenerate a self-contained handoff prompt to continue tracked work in a different agent
cmk:delivery-pipelineEnd-to-end autonomous delivery of one issue, or a dependency-aware cluster, across phases 1–5 (incl. 3b)

Knowledge family

SkillPurpose
cmk:sui-sdkgRPC-first guidance for talking to a Sui full node — JSON-RPC is deprecated
cmk:sui-devstackWorktree-safe local Sui network setup for development and e2e tests

Usage

A deeper tour, in the order docs build on each other when starting a new project. Every line in the blocks below is a real trigger — paste and go.

1. Scaffold — cmk:docs

Set up the /docs structure once; re-run it to verify or update as the project grows.

Set up the docs structure for this project
Check if our docs structure is up to date with the latest devkit

2. Requirements — cmk:requirements

Define what to build and why — the upstream source of truth everything downstream references. Works from conversation, Notion/Google Docs links, or an interview when all you have is an idea.

We just discussed the billing system requirements — save that as requirements
Use this Notion doc to draft requirements for the new onboarding flow: [link]
Update the requirements — we're cutting the SSO requirement from v1

3. Design — cmk:design

Design how to build it as an implementation-agnostic spec — system-wide or per-feature. Checks upstream requirements and decisions for conflicts; cascades accepted changes downstream.

Draft a system design for our payments service
Create a feature-level design for checkout retry logic
Update the system design — we switched from PostgreSQL to DynamoDB

Any stage: Decisions — cmk:adr

Record system-level decisions as numbered ADRs as they come up. A decision that changes direction gets a new record that supersedes the old one — history stays readable.

We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Update ADR-0003 — we revisited the decision and switched from REST to gRPC

Any stage: Glossary — cmk:glossary

Lock the shared vocabulary — one term, one meaning, used identically in docs, code, and tickets. Fires on its own whenever a term is coined, contested, or drifting.

Create a glossary from our existing requirements and design docs
We keep saying relay and router for the same thing — lock one term in the glossary

Any stage: Learnings & rules — cmk:learn + cmk:rule

Capture non-obvious knowledge into docs/knowledge/, then promote what should be enforced into docs/rules/.

Save that Redis connection pooling gotcha we just discovered
Promote the Redis pooling learning to an infrastructure rule
Add a rule that all API endpoints must validate auth tokens before processing

Any stage: Codebase docs for AI — cmk:codebase-docs

Maintain a hierarchical tree of short navigation docs under docs/ai/ so an agent (or a human skimming) finds the right source file fast.

Set up AI docs for this repo
Update the AI docs — I added a new TUI input handler

Repo setup — cmk:repo-setup and its facets

Orchestrates project layout, toolchain, agent instructions, MCP config, local stack, infra, and CI/CD through init, adopt, update, and verify passes; each facet also runs standalone.

Set up this repo
Make local dev worktree-safe
Structure our CI

Vendoring & sync — cmk:agent-vendors + cmk:sync

One canonical .agents/skills/ home with the thinnest adapter each coding-agent vendor needs, kept current with upstream through lock-tracked semantic reconciliation — never a blind overwrite of local adaptations.

Vendor the devkit skills into this repo
Sync our vendored skills with upstream

Delivery — cmk:delivery-pipeline and its phases

Deliver tracker-tracked work end to end — intake, spec and plan, implementation, review, ship — autonomously, or invoke any phase skill standalone.

Work on TICKET-123
Review this PR
Generate a handoff prompt so I can continue this in another agent

Throughout, skills warn when a change conflicts with an upstream doc — requirements scope, a recorded decision, a glossary term — and you decide how to resolve it; accepted changes cascade downstream.

Works With

Claude Code

Install via any path — vendored adapters, skills.sh, or the plugin. Skills are auto-discovered and available as slash commands. See INSTALLATION.md for setup.

OpenCode

Direct-discovery vendor: install via skills.sh, or vendor the skills and point OpenCode's skill-paths config at .agents/skills/. See INSTALLATION.md for setup.

Specialized Agents

The /docs directory is the shared protocol. Any agent — research, architecture, planning, QA — can participate by reading from and writing to the same structure:

┌──────────┐ ┌────────────────────┐ ┌──────────────┐
│ Research │────▶│ Requirements │────▶│ Design │
│ Agent │ │ (cmk:requirements) │ │ (cmk:design) │
└──────────┘ └────────────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Knowledge │
│ (cmk:learn) │
│ │ │
│ ▼ │
│ Rules │
│ (cmk:rule) │
└──────────────┘
  • A research agent saves findings → cmk:requirements reads them to draft requirements
  • A planning agent reads the design → breaks it into tasks
  • A QA agent reads the design → generates test cases from acceptance criteria
  • A debugging session surfaces gotchas → cmk:learn captures them → cmk:rule promotes to standards

The docs are the interface between agents. Each agent reads what it needs, writes what it produces, and the next agent picks up where the last one left off.

Documentation Structure

Refer to docs/README.md for the full directory structure and conventions.

Contributing

See CONTRIBUTING.md for how skill changes are proposed, reviewed, and upstreamed from a repo that vendored them.

License

MIT © 2026 CommandOSS Labs

About

Documentation guideline supporting development lifecycle at CommandOSS

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AI DevKit

Evolvable agent skills for the full software development lifecycle — requirements, design, decisions, repo setup, and delivery. Vendored into your repo, they adapt to how your team works and still sync with upstream.

Documentation-first: agents and humans work from the same knowledge, memory, and context — structured docs are the shared state.

Install

Three paths — vendored with sync (recommended, fully evolvable), skills.sh, or a zero-setup plugin trial. The install path decides whether your per-repo adaptations survive upgrades; INSTALLATION.md covers every scenario and its consequences. Tell your agent:

Fetch and follow https://raw.githubusercontent.com/CommandOSSLabs/ai-devkit/refs/heads/main/INSTALLATION.md

Quick Start

Skills trigger from natural language — describe what you need and the right one picks it up (slash commands like /cmk:requirements work too). Straight after installing, try any of these:

Set up this repo
We just discussed the billing system requirements — save that as requirements
We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Work on TICKET-123

Each request lands in the right skill, which asks only what it must and writes the result where it belongs under /docs. The rest of this README is depth — the skills work without reading it.

How It Works

One mental model runs through every skill: the SDLC is a flow of documents that build on each other, and the repository's /docs tree is where that flow lives.

Requirements ──▶ Design ──▶ Plan ──▶ Implement ──▶ Simplify ──▶ Review ──▶ Ship
what & why how, as an └────────── delivery family ──────────┘
implementation-
agnostic spec
cross-cutting at every stage:
Decisions (cmk:adr) · Glossary (cmk:glossary) · Learnings (cmk:learn) · Rules (cmk:rule)

Three principles keep the flow coherent:

  • Guidance over forms. The requirements and design skills follow shaping directives, not fixed templates — they interview when the input is still an idea and distill documents specific to your product rather than generic ones.
  • Coherence cascades. Docs cross-reference each other, so changing one means checking what it links to and what links back. Skills detect conflicts — a design contradicting a locked decision, a term drifting from the glossary — and flag them for you to resolve instead of silently overriding.
  • Progressive disclosure. Every docs folder README is a concise navigation index; depth lives one level down. Agents and humans read only what the task at hand needs.

The full phase definitions live in docs/design/sdl-phases.md.

Motivation

AI agents lose context between sessions. Teams repeat requirements, re-explain decisions, and re-establish scope every time a new conversation starts. There is no shared memory between agents and humans.

This devkit solves that by using structured documentation as the shared state. The repository becomes the single source of truth — agents read it to get up to speed, humans and agents write to it to preserve decisions, and both act on the same base of knowledge.

This is a guideline, not a rulebook. The goal is better structure, not more files. Teams can draft in Notion, Google Docs, or conversation — but finalized, development-critical context should live in the repository.

Skills

SkillPurpose
cmk:docsBootstrap or update the /docs directory structure
cmk:requirementsCreate or iterate product/feature requirements in docs/requirements/
cmk:designCreate or iterate distilled design in docs/design/ — system-wide or per-feature
cmk:adrCreate or update decisions in docs/decisions/
cmk:glossaryCreate or maintain the shared normative glossary of systems, components, and actors
cmk:codebase-docsGenerate or update hierarchical, AI-navigable docs under docs/ai/
cmk:learnExtract and record non-obvious learnings and gotchas
cmk:ruleCodify engineering standards into docs/rules/
cmk:project-layoutEstablish or audit a role-first monorepo layout and package placement
cmk:toolchainAssign tool roles, pin runtime versions, and set a gitignore baseline
cmk:agent-instructionsMaintain a thin, multi-vendor root instruction file backed by docs/rules/
cmk:mcp-configSet up checked-in, per-vendor MCP server configuration
cmk:local-stackCreate or iterate worktree-isolated local development stacks
cmk:infraEstablish or audit infrastructure-as-code packages and environment boundaries
cmk:cicdStructure CI, deployment, and policy automation around GitHub Actions
cmk:enclaveAttested enclave boundary, secret packing, and TEE applications (Nautilus / Nitro)
cmk:test-resourcesShare an expensive test resource (container, database, external service) safely across a parallel test runner
cmk:rustIdiomatic Rust practices — error handling, module boundaries, feature flags, lint/test wiring, dependency hygiene — inside a design-decided crate
cmk:testcontainersStart and share a throwaway service container from Rust test code via the testcontainers crate
cmk:agent-vendorsVendor the kit's skills into one canonical home with per-vendor adapters
cmk:syncReconcile vendored skills with upstream without flattening local evolution
cmk:repo-setupOrchestrate every setup facet into one bootstrap, adopt, update, or verify pass

Delivery family

SkillPurpose
cmk:delivery-workflowThe tracker-neutral contract every delivery skill operates inside — reconciliation loop, readiness vocabulary, acceptance criteria
cmk:discover-effortsReconcile an uncertain body of work into a complete tracker issue set before delivery begins
cmk:delivery-intakePull full context for a tracker issue, set up its branch/worktree, and move it to in-progress
cmk:delivery-spec-planProduce a low-level design spec and an executable, dependency-aware implementation plan
cmk:delivery-simplifyBehavior-preserving quality cleanup (reuse, simplification, efficiency, altitude) — phase 3b after implement
cmk:delivery-reviewMulti-lens review — correctness, quality, spec/AC compliance, security, and more — with verified findings
cmk:delivery-shipFinalize delivery: verified evidence, a review-ready PR, and tracker reconciliation
cmk:delivery-handoffGenerate a self-contained handoff prompt to continue tracked work in a different agent
cmk:delivery-pipelineEnd-to-end autonomous delivery of one issue, or a dependency-aware cluster, across phases 1–5 (incl. 3b)

Knowledge family

SkillPurpose
cmk:sui-sdkgRPC-first guidance for talking to a Sui full node — JSON-RPC is deprecated
cmk:sui-devstackWorktree-safe local Sui network setup for development and e2e tests

Usage

A deeper tour, in the order docs build on each other when starting a new project. Every line in the blocks below is a real trigger — paste and go.

1. Scaffold — cmk:docs

Set up the /docs structure once; re-run it to verify or update as the project grows.

Set up the docs structure for this project
Check if our docs structure is up to date with the latest devkit

2. Requirements — cmk:requirements

Define what to build and why — the upstream source of truth everything downstream references. Works from conversation, Notion/Google Docs links, or an interview when all you have is an idea.

We just discussed the billing system requirements — save that as requirements
Use this Notion doc to draft requirements for the new onboarding flow: [link]
Update the requirements — we're cutting the SSO requirement from v1

3. Design — cmk:design

Design how to build it as an implementation-agnostic spec — system-wide or per-feature. Checks upstream requirements and decisions for conflicts; cascades accepted changes downstream.

Draft a system design for our payments service
Create a feature-level design for checkout retry logic
Update the system design — we switched from PostgreSQL to DynamoDB

Any stage: Decisions — cmk:adr

Record system-level decisions as numbered ADRs as they come up. A decision that changes direction gets a new record that supersedes the old one — history stays readable.

We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Update ADR-0003 — we revisited the decision and switched from REST to gRPC

Any stage: Glossary — cmk:glossary

Lock the shared vocabulary — one term, one meaning, used identically in docs, code, and tickets. Fires on its own whenever a term is coined, contested, or drifting.

Create a glossary from our existing requirements and design docs
We keep saying relay and router for the same thing — lock one term in the glossary

Any stage: Learnings & rules — cmk:learn + cmk:rule

Capture non-obvious knowledge into docs/knowledge/, then promote what should be enforced into docs/rules/.

Save that Redis connection pooling gotcha we just discovered
Promote the Redis pooling learning to an infrastructure rule
Add a rule that all API endpoints must validate auth tokens before processing

Any stage: Codebase docs for AI — cmk:codebase-docs

Maintain a hierarchical tree of short navigation docs under docs/ai/ so an agent (or a human skimming) finds the right source file fast.

Set up AI docs for this repo
Update the AI docs — I added a new TUI input handler

Repo setup — cmk:repo-setup and its facets

Orchestrates project layout, toolchain, agent instructions, MCP config, local stack, infra, and CI/CD through init, adopt, update, and verify passes; each facet also runs standalone.

Set up this repo
Make local dev worktree-safe
Structure our CI

Vendoring & sync — cmk:agent-vendors + cmk:sync

One canonical .agents/skills/ home with the thinnest adapter each coding-agent vendor needs, kept current with upstream through lock-tracked semantic reconciliation — never a blind overwrite of local adaptations.

Vendor the devkit skills into this repo
Sync our vendored skills with upstream

Delivery — cmk:delivery-pipeline and its phases

Deliver tracker-tracked work end to end — intake, spec and plan, implementation, review, ship — autonomously, or invoke any phase skill standalone.

Work on TICKET-123
Review this PR
Generate a handoff prompt so I can continue this in another agent

Throughout, skills warn when a change conflicts with an upstream doc — requirements scope, a recorded decision, a glossary term — and you decide how to resolve it; accepted changes cascade downstream.

Works With

Claude Code

Install via any path — vendored adapters, skills.sh, or the plugin. Skills are auto-discovered and available as slash commands. See INSTALLATION.md for setup.

OpenCode

Direct-discovery vendor: install via skills.sh, or vendor the skills and point OpenCode's skill-paths config at .agents/skills/. See INSTALLATION.md for setup.

Specialized Agents

The /docs directory is the shared protocol. Any agent — research, architecture, planning, QA — can participate by reading from and writing to the same structure:

┌──────────┐ ┌────────────────────┐ ┌──────────────┐
│ Research │────▶│ Requirements │────▶│ Design │
│ Agent │ │ (cmk:requirements) │ │ (cmk:design) │
└──────────┘ └────────────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Knowledge │
│ (cmk:learn) │
│ │ │
│ ▼ │
│ Rules │
│ (cmk:rule) │
└──────────────┘
  • A research agent saves findings → cmk:requirements reads them to draft requirements
  • A planning agent reads the design → breaks it into tasks
  • A QA agent reads the design → generates test cases from acceptance criteria
  • A debugging session surfaces gotchas → cmk:learn captures them → cmk:rule promotes to standards

The docs are the interface between agents. Each agent reads what it needs, writes what it produces, and the next agent picks up where the last one left off.

Documentation Structure

Refer to docs/README.md for the full directory structure and conventions.

Contributing

See CONTRIBUTING.md for how skill changes are proposed, reviewed, and upstreamed from a repo that vendored them.

License

MIT © 2026 CommandOSS Labs

About

Documentation guideline supporting development lifecycle at CommandOSS

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AI DevKit

Evolvable agent skills for the full software development lifecycle — requirements, design, decisions, repo setup, and delivery. Vendored into your repo, they adapt to how your team works and still sync with upstream.

Documentation-first: agents and humans work from the same knowledge, memory, and context — structured docs are the shared state.

Install

Three paths — vendored with sync (recommended, fully evolvable), skills.sh, or a zero-setup plugin trial. The install path decides whether your per-repo adaptations survive upgrades; INSTALLATION.md covers every scenario and its consequences. Tell your agent:

Fetch and follow https://raw.githubusercontent.com/CommandOSSLabs/ai-devkit/refs/heads/main/INSTALLATION.md

Quick Start

Skills trigger from natural language — describe what you need and the right one picks it up (slash commands like /cmk:requirements work too). Straight after installing, try any of these:

Set up this repo
We just discussed the billing system requirements — save that as requirements
We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Work on TICKET-123

Each request lands in the right skill, which asks only what it must and writes the result where it belongs under /docs. The rest of this README is depth — the skills work without reading it.

How It Works

One mental model runs through every skill: the SDLC is a flow of documents that build on each other, and the repository's /docs tree is where that flow lives.

Requirements ──▶ Design ──▶ Plan ──▶ Implement ──▶ Simplify ──▶ Review ──▶ Ship
what & why how, as an └────────── delivery family ──────────┘
implementation-
agnostic spec
cross-cutting at every stage:
Decisions (cmk:adr) · Glossary (cmk:glossary) · Learnings (cmk:learn) · Rules (cmk:rule)

Three principles keep the flow coherent:

  • Guidance over forms. The requirements and design skills follow shaping directives, not fixed templates — they interview when the input is still an idea and distill documents specific to your product rather than generic ones.
  • Coherence cascades. Docs cross-reference each other, so changing one means checking what it links to and what links back. Skills detect conflicts — a design contradicting a locked decision, a term drifting from the glossary — and flag them for you to resolve instead of silently overriding.
  • Progressive disclosure. Every docs folder README is a concise navigation index; depth lives one level down. Agents and humans read only what the task at hand needs.

The full phase definitions live in docs/design/sdl-phases.md.

Motivation

AI agents lose context between sessions. Teams repeat requirements, re-explain decisions, and re-establish scope every time a new conversation starts. There is no shared memory between agents and humans.

This devkit solves that by using structured documentation as the shared state. The repository becomes the single source of truth — agents read it to get up to speed, humans and agents write to it to preserve decisions, and both act on the same base of knowledge.

This is a guideline, not a rulebook. The goal is better structure, not more files. Teams can draft in Notion, Google Docs, or conversation — but finalized, development-critical context should live in the repository.

Skills

SkillPurpose
cmk:docsBootstrap or update the /docs directory structure
cmk:requirementsCreate or iterate product/feature requirements in docs/requirements/
cmk:designCreate or iterate distilled design in docs/design/ — system-wide or per-feature
cmk:adrCreate or update decisions in docs/decisions/
cmk:glossaryCreate or maintain the shared normative glossary of systems, components, and actors
cmk:codebase-docsGenerate or update hierarchical, AI-navigable docs under docs/ai/
cmk:learnExtract and record non-obvious learnings and gotchas
cmk:ruleCodify engineering standards into docs/rules/
cmk:project-layoutEstablish or audit a role-first monorepo layout and package placement
cmk:toolchainAssign tool roles, pin runtime versions, and set a gitignore baseline
cmk:agent-instructionsMaintain a thin, multi-vendor root instruction file backed by docs/rules/
cmk:mcp-configSet up checked-in, per-vendor MCP server configuration
cmk:local-stackCreate or iterate worktree-isolated local development stacks
cmk:infraEstablish or audit infrastructure-as-code packages and environment boundaries
cmk:cicdStructure CI, deployment, and policy automation around GitHub Actions
cmk:enclaveAttested enclave boundary, secret packing, and TEE applications (Nautilus / Nitro)
cmk:test-resourcesShare an expensive test resource (container, database, external service) safely across a parallel test runner
cmk:rustIdiomatic Rust practices — error handling, module boundaries, feature flags, lint/test wiring, dependency hygiene — inside a design-decided crate
cmk:testcontainersStart and share a throwaway service container from Rust test code via the testcontainers crate
cmk:agent-vendorsVendor the kit's skills into one canonical home with per-vendor adapters
cmk:syncReconcile vendored skills with upstream without flattening local evolution
cmk:repo-setupOrchestrate every setup facet into one bootstrap, adopt, update, or verify pass

Delivery family

SkillPurpose
cmk:delivery-workflowThe tracker-neutral contract every delivery skill operates inside — reconciliation loop, readiness vocabulary, acceptance criteria
cmk:discover-effortsReconcile an uncertain body of work into a complete tracker issue set before delivery begins
cmk:delivery-intakePull full context for a tracker issue, set up its branch/worktree, and move it to in-progress
cmk:delivery-spec-planProduce a low-level design spec and an executable, dependency-aware implementation plan
cmk:delivery-simplifyBehavior-preserving quality cleanup (reuse, simplification, efficiency, altitude) — phase 3b after implement
cmk:delivery-reviewMulti-lens review — correctness, quality, spec/AC compliance, security, and more — with verified findings
cmk:delivery-shipFinalize delivery: verified evidence, a review-ready PR, and tracker reconciliation
cmk:delivery-handoffGenerate a self-contained handoff prompt to continue tracked work in a different agent
cmk:delivery-pipelineEnd-to-end autonomous delivery of one issue, or a dependency-aware cluster, across phases 1–5 (incl. 3b)

Knowledge family

SkillPurpose
cmk:sui-sdkgRPC-first guidance for talking to a Sui full node — JSON-RPC is deprecated
cmk:sui-devstackWorktree-safe local Sui network setup for development and e2e tests

Usage

A deeper tour, in the order docs build on each other when starting a new project. Every line in the blocks below is a real trigger — paste and go.

1. Scaffold — cmk:docs

Set up the /docs structure once; re-run it to verify or update as the project grows.

Set up the docs structure for this project
Check if our docs structure is up to date with the latest devkit

2. Requirements — cmk:requirements

Define what to build and why — the upstream source of truth everything downstream references. Works from conversation, Notion/Google Docs links, or an interview when all you have is an idea.

We just discussed the billing system requirements — save that as requirements
Use this Notion doc to draft requirements for the new onboarding flow: [link]
Update the requirements — we're cutting the SSO requirement from v1

3. Design — cmk:design

Design how to build it as an implementation-agnostic spec — system-wide or per-feature. Checks upstream requirements and decisions for conflicts; cascades accepted changes downstream.

Draft a system design for our payments service
Create a feature-level design for checkout retry logic
Update the system design — we switched from PostgreSQL to DynamoDB

Any stage: Decisions — cmk:adr

Record system-level decisions as numbered ADRs as they come up. A decision that changes direction gets a new record that supersedes the old one — history stays readable.

We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Update ADR-0003 — we revisited the decision and switched from REST to gRPC

Any stage: Glossary — cmk:glossary

Lock the shared vocabulary — one term, one meaning, used identically in docs, code, and tickets. Fires on its own whenever a term is coined, contested, or drifting.

Create a glossary from our existing requirements and design docs
We keep saying relay and router for the same thing — lock one term in the glossary

Any stage: Learnings & rules — cmk:learn + cmk:rule

Capture non-obvious knowledge into docs/knowledge/, then promote what should be enforced into docs/rules/.

Save that Redis connection pooling gotcha we just discovered
Promote the Redis pooling learning to an infrastructure rule
Add a rule that all API endpoints must validate auth tokens before processing

Any stage: Codebase docs for AI — cmk:codebase-docs

Maintain a hierarchical tree of short navigation docs under docs/ai/ so an agent (or a human skimming) finds the right source file fast.

Set up AI docs for this repo
Update the AI docs — I added a new TUI input handler

Repo setup — cmk:repo-setup and its facets

Orchestrates project layout, toolchain, agent instructions, MCP config, local stack, infra, and CI/CD through init, adopt, update, and verify passes; each facet also runs standalone.

Set up this repo
Make local dev worktree-safe
Structure our CI

Vendoring & sync — cmk:agent-vendors + cmk:sync

One canonical .agents/skills/ home with the thinnest adapter each coding-agent vendor needs, kept current with upstream through lock-tracked semantic reconciliation — never a blind overwrite of local adaptations.

Vendor the devkit skills into this repo
Sync our vendored skills with upstream

Delivery — cmk:delivery-pipeline and its phases

Deliver tracker-tracked work end to end — intake, spec and plan, implementation, review, ship — autonomously, or invoke any phase skill standalone.

Work on TICKET-123
Review this PR
Generate a handoff prompt so I can continue this in another agent

Throughout, skills warn when a change conflicts with an upstream doc — requirements scope, a recorded decision, a glossary term — and you decide how to resolve it; accepted changes cascade downstream.

Works With

Claude Code

Install via any path — vendored adapters, skills.sh, or the plugin. Skills are auto-discovered and available as slash commands. See INSTALLATION.md for setup.

OpenCode

Direct-discovery vendor: install via skills.sh, or vendor the skills and point OpenCode's skill-paths config at .agents/skills/. See INSTALLATION.md for setup.

Specialized Agents

The /docs directory is the shared protocol. Any agent — research, architecture, planning, QA — can participate by reading from and writing to the same structure:

┌──────────┐ ┌────────────────────┐ ┌──────────────┐
│ Research │────▶│ Requirements │────▶│ Design │
│ Agent │ │ (cmk:requirements) │ │ (cmk:design) │
└──────────┘ └────────────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Knowledge │
│ (cmk:learn) │
│ │ │
│ ▼ │
│ Rules │
│ (cmk:rule) │
└──────────────┘
  • A research agent saves findings → cmk:requirements reads them to draft requirements
  • A planning agent reads the design → breaks it into tasks
  • A QA agent reads the design → generates test cases from acceptance criteria
  • A debugging session surfaces gotchas → cmk:learn captures them → cmk:rule promotes to standards

The docs are the interface between agents. Each agent reads what it needs, writes what it produces, and the next agent picks up where the last one left off.

Documentation Structure

Refer to docs/README.md for the full directory structure and conventions.

Contributing

See CONTRIBUTING.md for how skill changes are proposed, reviewed, and upstreamed from a repo that vendored them.

License

MIT © 2026 CommandOSS Labs

About

Documentation guideline supporting development lifecycle at CommandOSS

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

AI DevKit

Evolvable agent skills for the full software development lifecycle — requirements, design, decisions, repo setup, and delivery. Vendored into your repo, they adapt to how your team works and still sync with upstream.

Documentation-first: agents and humans work from the same knowledge, memory, and context — structured docs are the shared state.

Install

Three paths — vendored with sync (recommended, fully evolvable), skills.sh, or a zero-setup plugin trial. The install path decides whether your per-repo adaptations survive upgrades; INSTALLATION.md covers every scenario and its consequences. Tell your agent:

Fetch and follow https://raw.githubusercontent.com/CommandOSSLabs/ai-devkit/refs/heads/main/INSTALLATION.md

Quick Start

Skills trigger from natural language — describe what you need and the right one picks it up (slash commands like /cmk:requirements work too). Straight after installing, try any of these:

Set up this repo
We just discussed the billing system requirements — save that as requirements
We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Work on TICKET-123

Each request lands in the right skill, which asks only what it must and writes the result where it belongs under /docs. The rest of this README is depth — the skills work without reading it.

How It Works

One mental model runs through every skill: the SDLC is a flow of documents that build on each other, and the repository's /docs tree is where that flow lives.

Requirements ──▶ Design ──▶ Plan ──▶ Implement ──▶ Simplify ──▶ Review ──▶ Ship
what & why how, as an └────────── delivery family ──────────┘
implementation-
agnostic spec
cross-cutting at every stage:
Decisions (cmk:adr) · Glossary (cmk:glossary) · Learnings (cmk:learn) · Rules (cmk:rule)

Three principles keep the flow coherent:

  • Guidance over forms. The requirements and design skills follow shaping directives, not fixed templates — they interview when the input is still an idea and distill documents specific to your product rather than generic ones.
  • Coherence cascades. Docs cross-reference each other, so changing one means checking what it links to and what links back. Skills detect conflicts — a design contradicting a locked decision, a term drifting from the glossary — and flag them for you to resolve instead of silently overriding.
  • Progressive disclosure. Every docs folder README is a concise navigation index; depth lives one level down. Agents and humans read only what the task at hand needs.

The full phase definitions live in docs/design/sdl-phases.md.

Motivation

AI agents lose context between sessions. Teams repeat requirements, re-explain decisions, and re-establish scope every time a new conversation starts. There is no shared memory between agents and humans.

This devkit solves that by using structured documentation as the shared state. The repository becomes the single source of truth — agents read it to get up to speed, humans and agents write to it to preserve decisions, and both act on the same base of knowledge.

This is a guideline, not a rulebook. The goal is better structure, not more files. Teams can draft in Notion, Google Docs, or conversation — but finalized, development-critical context should live in the repository.

Skills

SkillPurpose
cmk:docsBootstrap or update the /docs directory structure
cmk:requirementsCreate or iterate product/feature requirements in docs/requirements/
cmk:designCreate or iterate distilled design in docs/design/ — system-wide or per-feature
cmk:adrCreate or update decisions in docs/decisions/
cmk:glossaryCreate or maintain the shared normative glossary of systems, components, and actors
cmk:codebase-docsGenerate or update hierarchical, AI-navigable docs under docs/ai/
cmk:learnExtract and record non-obvious learnings and gotchas
cmk:ruleCodify engineering standards into docs/rules/
cmk:project-layoutEstablish or audit a role-first monorepo layout and package placement
cmk:toolchainAssign tool roles, pin runtime versions, and set a gitignore baseline
cmk:agent-instructionsMaintain a thin, multi-vendor root instruction file backed by docs/rules/
cmk:mcp-configSet up checked-in, per-vendor MCP server configuration
cmk:local-stackCreate or iterate worktree-isolated local development stacks
cmk:infraEstablish or audit infrastructure-as-code packages and environment boundaries
cmk:cicdStructure CI, deployment, and policy automation around GitHub Actions
cmk:enclaveAttested enclave boundary, secret packing, and TEE applications (Nautilus / Nitro)
cmk:test-resourcesShare an expensive test resource (container, database, external service) safely across a parallel test runner
cmk:rustIdiomatic Rust practices — error handling, module boundaries, feature flags, lint/test wiring, dependency hygiene — inside a design-decided crate
cmk:testcontainersStart and share a throwaway service container from Rust test code via the testcontainers crate
cmk:agent-vendorsVendor the kit's skills into one canonical home with per-vendor adapters
cmk:syncReconcile vendored skills with upstream without flattening local evolution
cmk:repo-setupOrchestrate every setup facet into one bootstrap, adopt, update, or verify pass

Delivery family

SkillPurpose
cmk:delivery-workflowThe tracker-neutral contract every delivery skill operates inside — reconciliation loop, readiness vocabulary, acceptance criteria
cmk:discover-effortsReconcile an uncertain body of work into a complete tracker issue set before delivery begins
cmk:delivery-intakePull full context for a tracker issue, set up its branch/worktree, and move it to in-progress
cmk:delivery-spec-planProduce a low-level design spec and an executable, dependency-aware implementation plan
cmk:delivery-simplifyBehavior-preserving quality cleanup (reuse, simplification, efficiency, altitude) — phase 3b after implement
cmk:delivery-reviewMulti-lens review — correctness, quality, spec/AC compliance, security, and more — with verified findings
cmk:delivery-shipFinalize delivery: verified evidence, a review-ready PR, and tracker reconciliation
cmk:delivery-handoffGenerate a self-contained handoff prompt to continue tracked work in a different agent
cmk:delivery-pipelineEnd-to-end autonomous delivery of one issue, or a dependency-aware cluster, across phases 1–5 (incl. 3b)

Knowledge family

SkillPurpose
cmk:sui-sdkgRPC-first guidance for talking to a Sui full node — JSON-RPC is deprecated
cmk:sui-devstackWorktree-safe local Sui network setup for development and e2e tests

Usage

A deeper tour, in the order docs build on each other when starting a new project. Every line in the blocks below is a real trigger — paste and go.

1. Scaffold — cmk:docs

Set up the /docs structure once; re-run it to verify or update as the project grows.

Set up the docs structure for this project
Check if our docs structure is up to date with the latest devkit

2. Requirements — cmk:requirements

Define what to build and why — the upstream source of truth everything downstream references. Works from conversation, Notion/Google Docs links, or an interview when all you have is an idea.

We just discussed the billing system requirements — save that as requirements
Use this Notion doc to draft requirements for the new onboarding flow: [link]
Update the requirements — we're cutting the SSO requirement from v1

3. Design — cmk:design

Design how to build it as an implementation-agnostic spec — system-wide or per-feature. Checks upstream requirements and decisions for conflicts; cascades accepted changes downstream.

Draft a system design for our payments service
Create a feature-level design for checkout retry logic
Update the system design — we switched from PostgreSQL to DynamoDB

Any stage: Decisions — cmk:adr

Record system-level decisions as numbered ADRs as they come up. A decision that changes direction gets a new record that supersedes the old one — history stays readable.

We decided to use event sourcing over CRUD for the audit trail — record that as an ADR
Update ADR-0003 — we revisited the decision and switched from REST to gRPC

Any stage: Glossary — cmk:glossary

Lock the shared vocabulary — one term, one meaning, used identically in docs, code, and tickets. Fires on its own whenever a term is coined, contested, or drifting.

Create a glossary from our existing requirements and design docs
We keep saying relay and router for the same thing — lock one term in the glossary

Any stage: Learnings & rules — cmk:learn + cmk:rule

Capture non-obvious knowledge into docs/knowledge/, then promote what should be enforced into docs/rules/.

Save that Redis connection pooling gotcha we just discovered
Promote the Redis pooling learning to an infrastructure rule
Add a rule that all API endpoints must validate auth tokens before processing

Any stage: Codebase docs for AI — cmk:codebase-docs

Maintain a hierarchical tree of short navigation docs under docs/ai/ so an agent (or a human skimming) finds the right source file fast.

Set up AI docs for this repo
Update the AI docs — I added a new TUI input handler

Repo setup — cmk:repo-setup and its facets

Orchestrates project layout, toolchain, agent instructions, MCP config, local stack, infra, and CI/CD through init, adopt, update, and verify passes; each facet also runs standalone.

Set up this repo
Make local dev worktree-safe
Structure our CI

Vendoring & sync — cmk:agent-vendors + cmk:sync

One canonical .agents/skills/ home with the thinnest adapter each coding-agent vendor needs, kept current with upstream through lock-tracked semantic reconciliation — never a blind overwrite of local adaptations.

Vendor the devkit skills into this repo
Sync our vendored skills with upstream

Delivery — cmk:delivery-pipeline and its phases

Deliver tracker-tracked work end to end — intake, spec and plan, implementation, review, ship — autonomously, or invoke any phase skill standalone.

Work on TICKET-123
Review this PR
Generate a handoff prompt so I can continue this in another agent

Throughout, skills warn when a change conflicts with an upstream doc — requirements scope, a recorded decision, a glossary term — and you decide how to resolve it; accepted changes cascade downstream.

Works With

Claude Code

Install via any path — vendored adapters, skills.sh, or the plugin. Skills are auto-discovered and available as slash commands. See INSTALLATION.md for setup.

OpenCode

Direct-discovery vendor: install via skills.sh, or vendor the skills and point OpenCode's skill-paths config at .agents/skills/. See INSTALLATION.md for setup.

Specialized Agents

The /docs directory is the shared protocol. Any agent — research, architecture, planning, QA — can participate by reading from and writing to the same structure:

┌──────────┐ ┌────────────────────┐ ┌──────────────┐
│ Research │────▶│ Requirements │────▶│ Design │
│ Agent │ │ (cmk:requirements) │ │ (cmk:design) │
└──────────┘ └────────────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Knowledge │
│ (cmk:learn) │
│ │ │
│ ▼ │
│ Rules │
│ (cmk:rule) │
└──────────────┘
  • A research agent saves findings → cmk:requirements reads them to draft requirements
  • A planning agent reads the design → breaks it into tasks
  • A QA agent reads the design → generates test cases from acceptance criteria
  • A debugging session surfaces gotchas → cmk:learn captures them → cmk:rule promotes to standards

The docs are the interface between agents. Each agent reads what it needs, writes what it produces, and the next agent picks up where the last one left off.

Documentation Structure

Refer to docs/README.md for the full directory structure and conventions.

Contributing

See CONTRIBUTING.md for how skill changes are proposed, reviewed, and upstreamed from a repo that vendored them.

License

MIT © 2026 CommandOSS Labs

About

Documentation guideline supporting development lifecycle at CommandOSS

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages