@open-agent-toolkit/cli 0.2.66 → 0.2.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/cli-utilities/configuration.md +14 -1
- package/assets/docs/cli-utilities/project-log.md +63 -4
- package/assets/docs/contributing/code.md +8 -4
- package/assets/docs/contributing/skills.md +29 -17
- package/assets/docs/docs-tooling/commands.md +3 -1
- package/assets/docs/provider-sync/manifest-and-drift.md +2 -18
- package/assets/docs/provider-sync/scope-and-surface.md +3 -2
- package/assets/docs/reference/cli-reference.md +1 -1
- package/assets/docs/workflows/projects/evidence-layers.md +6 -3
- package/assets/docs/workflows/projects/implementation-execution.md +4 -3
- package/assets/docs/workflows/projects/lifecycle.md +17 -0
- package/assets/docs/workflows/projects/orchestration-model.md +6 -4
- package/assets/docs/workflows/projects/picking-up-projects.md +18 -0
- package/assets/docs/workflows/skills/repo-improve.md +7 -3
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/create-agnostic-skill/SKILL.md +19 -37
- package/assets/skills/create-agnostic-skill/references/docs/skills-guide.md +58 -15
- package/assets/skills/create-agnostic-skill/references/skill-template.md +17 -15
- package/assets/skills/oat-agent-instructions-apply/SKILL.md +1 -1
- package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/glob-scoped-rule.md +1 -4
- package/assets/skills/oat-dispatch-subagents/SKILL.md +4 -2
- package/assets/skills/oat-doctor/SKILL.md +1 -4
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +3 -2
- package/assets/skills/oat-project-complete/SKILL.md +158 -30
- package/assets/skills/oat-project-complete/scripts/finalize-synced-archive.mjs +26 -7
- package/assets/skills/oat-project-complete/scripts/validate-durable-archive-receipt.mjs +183 -0
- package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -7
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +3 -2
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +11 -10
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +3 -2
- package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +3 -2
- package/assets/skills/oat-project-plan-writing/SKILL.md +7 -6
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +3 -2
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +3 -2
- package/assets/skills/oat-project-retro/SKILL.md +1 -1
- package/assets/skills/oat-project-retro/references/apply-procedure.md +11 -0
- package/assets/skills/oat-project-review-provide/SKILL.md +14 -13
- package/assets/skills/oat-project-review-provide-remote/SKILL.md +7 -6
- package/assets/skills/oat-project-summary/SKILL.md +24 -2
- package/assets/skills/oat-repo-improve/SKILL.md +9 -2
- package/assets/skills/oat-repo-improve/references/plan-template.md +4 -6
- package/assets/skills/oat-repo-knowledge-index/SKILL.md +11 -9
- package/assets/skills/oat-wave-execute/SKILL.md +20 -6
- package/assets/skills/oat-wave-program/SKILL.md +9 -4
- package/dist/commands/config/index.d.ts +2 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +133 -38
- package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
- package/dist/commands/docs/index-generate/index.js +68 -12
- package/dist/commands/docs/init/index.d.ts +11 -0
- package/dist/commands/docs/init/index.d.ts.map +1 -1
- package/dist/commands/docs/init/index.js +19 -1
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +10 -2
- package/dist/commands/instructions/instructions.utils.d.ts.map +1 -1
- package/dist/commands/instructions/instructions.utils.js +42 -9
- package/dist/commands/internal/validate-skill-version-bumps.d.ts.map +1 -1
- package/dist/commands/internal/validate-skill-version-bumps.js +5 -5
- package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
- package/dist/commands/project/dispatch-ceiling/index.js +32 -18
- package/dist/commands/project/log/append.d.ts +48 -0
- package/dist/commands/project/log/append.d.ts.map +1 -1
- package/dist/commands/project/log/append.js +207 -30
- package/dist/commands/project/log/check.d.ts +87 -1
- package/dist/commands/project/log/check.d.ts.map +1 -1
- package/dist/commands/project/log/check.js +139 -5
- package/dist/commands/project/log/grammar.d.ts +165 -0
- package/dist/commands/project/log/grammar.d.ts.map +1 -1
- package/dist/commands/project/log/grammar.js +219 -1
- package/dist/commands/project/log/rollup.d.ts +16 -1
- package/dist/commands/project/log/rollup.d.ts.map +1 -1
- package/dist/commands/project/log/rollup.js +22 -2
- package/dist/commands/project/log/synthesize.d.ts +16 -0
- package/dist/commands/project/log/synthesize.d.ts.map +1 -1
- package/dist/commands/project/log/synthesize.js +85 -9
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +24 -2
- package/dist/commands/sync/apply.d.ts.map +1 -1
- package/dist/commands/sync/apply.js +6 -4
- package/dist/config/dispatch-matrix.d.ts.map +1 -1
- package/dist/config/dispatch-matrix.js +13 -5
- package/dist/config/oat-config.d.ts +15 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +61 -7
- package/dist/config/own-keys.d.ts +22 -0
- package/dist/config/own-keys.d.ts.map +1 -0
- package/dist/config/own-keys.js +32 -0
- package/dist/config/resolve.d.ts +11 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +35 -11
- package/dist/config/sync-config.d.ts.map +1 -1
- package/dist/config/sync-config.js +16 -0
- package/dist/drift/detector.d.ts.map +1 -1
- package/dist/drift/detector.js +52 -1
- package/dist/drift/skill-view-diagnostic.d.ts.map +1 -1
- package/dist/drift/skill-view-diagnostic.js +2 -23
- package/dist/engine/compute-plan.d.ts.map +1 -1
- package/dist/engine/compute-plan.js +22 -72
- package/dist/engine/managed-copy-hash.d.ts +69 -0
- package/dist/engine/managed-copy-hash.d.ts.map +1 -0
- package/dist/engine/managed-copy-hash.js +175 -0
- package/dist/fs/assets.d.ts +11 -0
- package/dist/fs/assets.d.ts.map +1 -1
- package/dist/fs/assets.js +1 -1
- package/dist/manifest/hash.d.ts +110 -0
- package/dist/manifest/hash.d.ts.map +1 -1
- package/dist/manifest/hash.js +111 -13
- package/dist/providers/ceiling/registry.d.ts.map +1 -1
- package/dist/providers/ceiling/registry.js +6 -1
- package/dist/providers/identity/dispatch-report.d.ts.map +1 -1
- package/dist/providers/identity/dispatch-report.js +4 -1
- package/dist/release/public-package-contract.d.ts.map +1 -1
- package/dist/release/public-package-contract.js +21 -0
- package/dist/validation/skills.d.ts.map +1 -1
- package/dist/validation/skills.js +305 -40
- package/package.json +2 -2
|
@@ -6,7 +6,7 @@ disable-model-invocation: true
|
|
|
6
6
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
|
|
7
7
|
user-invocable: true
|
|
8
8
|
metadata:
|
|
9
|
-
version: 1.
|
|
9
|
+
version: 1.5.0
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Create Skill
|
|
@@ -69,7 +69,7 @@ If not provided in arguments, ask for:
|
|
|
69
69
|
**The context window is a shared resource.** Skills share context with everything else the agent needs. Structure information in three levels:
|
|
70
70
|
|
|
71
71
|
1. **Metadata** (~100 words): Name + description in frontmatter, always loaded
|
|
72
|
-
2. **SKILL.md body** (
|
|
72
|
+
2. **SKILL.md body** (~5,000 tokens): Loads when skill triggers
|
|
73
73
|
3. **Bundled resources**: Files in `references/`, `scripts/`, `assets/` loaded as-needed
|
|
74
74
|
|
|
75
75
|
**Writing principles:**
|
|
@@ -172,11 +172,12 @@ Natural language request that triggers this skill
|
|
|
172
172
|
**Frontmatter notes:**
|
|
173
173
|
|
|
174
174
|
- `argument-hint`, `allowed-tools`, `user-invocable`, `context`, `hooks` are Claude Code specific
|
|
175
|
-
-
|
|
175
|
+
- `allowed-tools`: write the value as a **comma-separated** list. The spec's own example is space-delimited and OAT never parses the separator — `validateOatSkills` in `packages/cli/src/validation/skills.ts` only checks that the key is present, and `getToolDetail` in `packages/cli/src/commands/tools/info/index.ts` reads the raw scalar — so this is OAT's authoring convention rather than a runtime contract. Backstop: `it('declares allowed-tools as a comma-separated list in every canonical skill')` in `packages/cli/src/validation/skills.test.ts`
|
|
176
|
+
- The spec defines a fixed field set, and providers differ in which extension fields they read. An unread field is inert rather than guaranteed harmless, so check the dated compatibility section of `references/docs/skills-guide.md` for the per-provider picture before depending on one
|
|
176
177
|
- `name`: max 64 chars for cross-provider portability (Codex allows 100, but 64 is the spec limit)
|
|
177
178
|
- `metadata.version`: include valid semver and start new skills at `1.0.0`. The Agent Skills specification puts the version under `metadata`, and OAT resolves `metadata.version` first and the top-level `version` second — `resolveSkillVersion` in `packages/cli/src/commands/shared/frontmatter.ts` owns that order, backstopped by `packages/cli/src/commands/shared/frontmatter.test.ts`
|
|
178
|
-
- `version` (top-level): the deprecated alias, still read when `metadata.version` is absent.
|
|
179
|
-
- `description`: **single line, ≤ 500 chars
|
|
179
|
+
- `version` (top-level): the deprecated alias, still read when `metadata.version` is absent — but a skill whose only version is that alias no longer validates. `validateOatSkills` in `packages/cli/src/validation/skills.ts` reports it as `skill-version-alias` at `severity: 'error'`, so `pnpm oat:validate-skills` fails the skill outright; the pass runs over every skill directory, not just `oat-*`, so an agnostic skill is covered too. Backstop: `it('reports exactly once for a non-oat-* alias-only skill')` in `packages/cli/src/validation/skills.test.ts`. Setting both to different values is the separate `skill-version-conflict` error: OAT reports the conflict, skill validation fails on it, and canonical role identity rejects it. Declare `metadata.version` and leave the alias out
|
|
180
|
+
- `description`: **single line, ≤ 500 chars**. This is OAT's house rule, not a provider requirement: `validateOatSkills` in `packages/cli/src/validation/skills.ts` enforces it only for skills whose directory name starts with `oat-`. For every other skill it is an unenforced authoring convention this repository follows for portability. Backstops in `packages/cli/src/validation/skills.test.ts`: `it('reports description longer than 500 characters')` and `it('does not report a description longer than 500 characters for a non-oat-* skill')`. The spec allows 1024
|
|
180
181
|
- Bump `metadata.version` on future edits: patch for fixes/clarifications, minor for backward-compatible behavior additions, major for breaking workflow/interface changes
|
|
181
182
|
|
|
182
183
|
**Writing the `description` field:**
|
|
@@ -194,7 +195,7 @@ Examples:
|
|
|
194
195
|
- Bad: "Reviews code by checking spec compliance, then code quality, then creates PR"
|
|
195
196
|
- Good: "Use when reviewing code or checking PRs. Systematic quality and security analysis."
|
|
196
197
|
|
|
197
|
-
Present the plan and
|
|
198
|
+
Present the plan and ask once for approval, stating the approval scope: it covers the skill directory, its `SKILL.md`, and the supporting files this plan named, for the rest of this run. Re-ask only if the file set changes. If the user declines, stop before creating any file and report the plan instead.
|
|
198
199
|
|
|
199
200
|
### Step 4: Create Skill File
|
|
200
201
|
|
|
@@ -231,18 +232,21 @@ Skills can include supporting files in subdirectories:
|
|
|
231
232
|
|
|
232
233
|
### Step 5: Sync and Verify
|
|
233
234
|
|
|
234
|
-
|
|
235
|
+
If the repository uses OAT sync, refresh the provider views for this repository only:
|
|
235
236
|
|
|
236
237
|
```bash
|
|
237
|
-
oat sync
|
|
238
|
+
oat sync --scope project
|
|
238
239
|
```
|
|
239
240
|
|
|
241
|
+
A bare `oat sync` defaults to `--scope all`, which also rewrites the invoking user's home-scope provider
|
|
242
|
+
directories. `withScopeOption` in `packages/cli/src/commands/shared/scope-option.ts` owns that default, and `it('sync --help matches snapshot')` in `packages/cli/src/commands/help-snapshots.test.ts` is its backstop.
|
|
243
|
+
|
|
240
244
|
Verify:
|
|
241
245
|
|
|
242
246
|
- File created at `.agents/skills/{skill-name}/SKILL.md`
|
|
243
247
|
- Frontmatter syntax is valid
|
|
244
248
|
- Frontmatter includes valid semver `metadata.version:` (new skills start at `1.0.0`)
|
|
245
|
-
- Skill
|
|
249
|
+
- Skill resolves through the provider views after a scoped sync — check with `oat tools info {skill-name}` or the provider's own skill list
|
|
246
250
|
- Examples include both invocation styles
|
|
247
251
|
- If the skill name starts with `oat-`, run `pnpm oat:validate-skills` and fix any findings
|
|
248
252
|
|
|
@@ -268,7 +272,7 @@ Provide:
|
|
|
268
272
|
- **Context window is a public good**—keep skills lean, challenge every paragraph
|
|
269
273
|
- Description is the trigger—include "when to use" in frontmatter, not just body
|
|
270
274
|
- Bump `metadata.version` for edits: patch = fixes/clarifications, minor = backward-compatible additions, major = breaking changes
|
|
271
|
-
- Keep SKILL.md **under 500 lines / ~5,000 tokens**
|
|
275
|
+
- Keep SKILL.md **under 500 lines / ~5,000 tokens** — OAT's authoring budget, not a specification limit; see the dated provider-compatibility section of `references/docs/skills-guide.md` for what each provider documents
|
|
272
276
|
- Use clear, task-based headings
|
|
273
277
|
- Include working examples for both invocation styles
|
|
274
278
|
- Document all arguments with defaults
|
|
@@ -289,7 +293,7 @@ Skills that need user decisions (parameter choices, confirmations, disambiguatio
|
|
|
289
293
|
|
|
290
294
|
Do **not** hard-code a specific Codex question tool name in skill prose unless the runtime contract is guaranteed. Prefer capability-based wording ("structured user-input tooling when available") so the skill remains portable across Codex hosts.
|
|
291
295
|
|
|
292
|
-
**Claude Code enhancement:** Add `AskUserQuestion` to `allowed-tools` in frontmatter. Claude Code renders these as structured UI prompts with selectable options, headers, and multi-select support.
|
|
296
|
+
**Claude Code enhancement:** Add `AskUserQuestion` to `allowed-tools` in frontmatter. Claude Code renders these as structured UI prompts with selectable options, headers, and multi-select support. Providers that do not read `allowed-tools` handle the same instructions as conversational questions; treat the field as having no effect there rather than as universally supported, and check the dated compatibility matrix in `references/docs/skills-guide.md`.
|
|
293
297
|
|
|
294
298
|
**When to include interactive input:**
|
|
295
299
|
|
|
@@ -374,32 +378,11 @@ For multi-step skills, print brief progress updates so the user knows what's hap
|
|
|
374
378
|
|
|
375
379
|
### Frontmatter Reference
|
|
376
380
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
| Field | Spec | Claude Code | Cursor | Codex CLI | Gemini CLI |
|
|
380
|
-
| -------------------------- | --------------- | ----------- | ------ | ----------- | ---------- |
|
|
381
|
-
| `name` | ✅ required | ✅ | ✅ | ✅ required | ✅ |
|
|
382
|
-
| `description` | ✅ required | ✅ | ✅ | ✅ required | ✅ |
|
|
383
|
-
| `license` | ✅ optional | ❓ | ✅ | 💤 | ❓ |
|
|
384
|
-
| `compatibility` | ✅ optional | ❓ | ✅ | 💤 | ❓ |
|
|
385
|
-
| `metadata` | ✅ optional | ❓ | ✅ | 💤 | ❓ |
|
|
386
|
-
| `allowed-tools` | ⚠️ experimental | ✅ | ❓ | 💤 | ❓ |
|
|
387
|
-
| `disable-model-invocation` | ❌ | ✅ | ✅ | 💤 | ❓ |
|
|
388
|
-
| `user-invocable` | ❌ | ✅ | ❓ | 💤 | ❓ |
|
|
389
|
-
| `argument-hint` | ❌ | ✅ | ❓ | 💤 | ❓ |
|
|
390
|
-
| `context` / `agent` | ❌ | ✅ | ❌ | 💤 | ❓ |
|
|
391
|
-
| `hooks` | ❌ | ✅ | ❌ | 💤 | ❓ |
|
|
392
|
-
|
|
393
|
-
**Key takeaway:** `name` + `description` are the only truly portable interface. Codex ignores unknown keys (safe to include Claude fields), so layer tool-specific fields on top of a portable baseline. For the full matrix, see `references/docs/skills-guide.md` (bundled with this skill).
|
|
381
|
+
**Key takeaway:** `name` + `description` are the only truly portable interface. Layer tool-specific fields on top of that baseline, but treat an unread field as inert rather than guaranteed harmless — providers differ in which extension fields they read, and not every provider documents what it does with the rest. The single canonical, dated compatibility matrix lives in `references/docs/skills-guide.md` (bundled with this skill); consult it rather than a copy.
|
|
394
382
|
|
|
395
383
|
### Detail Level
|
|
396
384
|
|
|
397
|
-
|
|
398
|
-
| --------------------- | ------------ | ------------------------------ |
|
|
399
|
-
| Complex workflows | Detailed | docs-new, docs-review |
|
|
400
|
-
| Simple command-like | Concise | update-doc-refs, create-ticket |
|
|
401
|
-
| Reference/standards | Detailed | repo-documentation |
|
|
402
|
-
| Helper (auto-invoked) | Moderate | read-relevant-docs |
|
|
385
|
+
For the detail level each skill type warrants, see `references/skill-template.md`.
|
|
403
386
|
|
|
404
387
|
## Examples
|
|
405
388
|
|
|
@@ -428,7 +411,7 @@ I need a skill for running database migrations
|
|
|
428
411
|
- [Agent Skills Open Standard](https://agentskills.io) — the spec
|
|
429
412
|
- [Claude Code Skills](https://code.claude.com/docs/en/skills) — Claude-specific features
|
|
430
413
|
- [Cursor Skills](https://cursor.com/docs/context/skills) — Cursor-specific features
|
|
431
|
-
- [Codex CLI Skills](https://
|
|
414
|
+
- [Codex CLI Skills](https://learn.chatgpt.com/docs/build-skills) — Codex-specific features
|
|
432
415
|
- [Gemini CLI Skills](https://geminicli.com/docs/cli/skills/) — Gemini-specific features
|
|
433
416
|
- [npx skills CLI](https://github.com/vercel-labs/skills) — installing remote/community skills
|
|
434
417
|
- [Skills best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices) — authoring guidance
|
|
@@ -439,7 +422,7 @@ I need a skill for running database migrations
|
|
|
439
422
|
|
|
440
423
|
**Skill not appearing in menu:**
|
|
441
424
|
|
|
442
|
-
- Run `oat sync` to regenerate provider views
|
|
425
|
+
- Run `oat sync --scope project` to regenerate this repository's provider views
|
|
443
426
|
- Verify YAML frontmatter syntax is valid
|
|
444
427
|
- Check that skill name matches directory name
|
|
445
428
|
- Ensure `user-invocable` is not set to `false` (Claude Code)
|
|
@@ -461,7 +444,6 @@ I need a skill for running database migrations
|
|
|
461
444
|
Successful skill creation:
|
|
462
445
|
|
|
463
446
|
- ✅ Skill created at `.agents/skills/{name}/SKILL.md`
|
|
464
|
-
- ✅ `oat sync` run successfully
|
|
465
447
|
- ✅ For `oat-*` skills, `pnpm oat:validate-skills` passes
|
|
466
448
|
- ✅ Frontmatter valid
|
|
467
449
|
- ✅ Workflow uses "Step" naming
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Agent Skills ecosystem research and notes across providers.
|
|
4
4
|
|
|
5
|
-
_Last updated:
|
|
5
|
+
_Last updated: September 2026_
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -55,7 +55,7 @@ license: MIT # License name or reference to bundled file
|
|
|
55
55
|
compatibility:
|
|
56
56
|
| # Max 500 chars — intended product, system packages, network needs
|
|
57
57
|
Requires Node.js 18+
|
|
58
|
-
allowed-tools: Read Grep Glob #
|
|
58
|
+
allowed-tools: Read Grep Glob # Spec example: space-delimited. OAT writes commas and never parses the separator — see the separator note below
|
|
59
59
|
metadata: # Arbitrary key-value pairs
|
|
60
60
|
author: my-org
|
|
61
61
|
version: '1.0'
|
|
@@ -64,7 +64,20 @@ metadata: # Arbitrary key-value pairs
|
|
|
64
64
|
|
|
65
65
|
### Spec Constraints
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
The size budget in the first bullet is **OAT's authoring guidance**, not a published
|
|
68
|
+
specification limit — no spec text in this document's sources imposes either number
|
|
69
|
+
(checked against https://agentskills.io/specification on 2026-09-09).
|
|
70
|
+
The remaining bullets restate the spec's own file-layout guidance.
|
|
71
|
+
|
|
72
|
+
**Separator note:** the spec's `allowed-tools` example is space-delimited. OAT writes
|
|
73
|
+
the value comma-separated, and OAT never parses the separator — `validateOatSkills` in
|
|
74
|
+
`packages/cli/src/validation/skills.ts` only checks that the key is present, and `getToolDetail` in
|
|
75
|
+
`packages/cli/src/commands/tools/info/index.ts` reads the raw scalar. The comma form is therefore an
|
|
76
|
+
authoring convention, not a runtime contract. Backstop:
|
|
77
|
+
`it('declares allowed-tools as a comma-separated list in every canonical skill')` in
|
|
78
|
+
`packages/cli/src/validation/skills.test.ts`.
|
|
79
|
+
|
|
80
|
+
- SKILL.md should be **under 500 lines / ~5,000 tokens** (OAT authoring budget)
|
|
68
81
|
- Use **relative paths** from skill root: `See [guide](references/REFERENCE.md)`
|
|
69
82
|
- Keep file references **one level deep** from SKILL.md
|
|
70
83
|
- Scripts should be **self-contained** or clearly document dependencies
|
|
@@ -79,12 +92,13 @@ If you want a skill to work across Claude Code, Cursor, Codex CLI, and Gemini CL
|
|
|
79
92
|
1. Follow the Agent Skills spec folder layout and constraints
|
|
80
93
|
2. Keep frontmatter minimal and conservative:
|
|
81
94
|
- `name`: lowercase letters + numbers + hyphens, max 64 chars, must match folder name, no leading/trailing hyphen
|
|
82
|
-
- `description`: **single line**, ≤ 500 chars
|
|
95
|
+
- `description`: **single line**, ≤ 500 chars, describes _when to use_ + _what_. This is OAT's house rule, not a provider requirement: `validateOatSkills` in `packages/cli/src/validation/skills.ts` enforces it only for skills whose directory name starts with `oat-`; elsewhere it is an unenforced authoring convention for portability. Backstops in `packages/cli/src/validation/skills.test.ts`: `it('reports description longer than 500 characters')` and `it('does not report a description longer than 500 characters for a non-oat-* skill')`. The spec allows 1024
|
|
83
96
|
3. Put detailed instructions in the Markdown body (and/or `references/`), not in `description`
|
|
84
97
|
4. Treat extra frontmatter keys as **best-effort extensions**:
|
|
85
98
|
- Claude Code supports many optional frontmatter keys
|
|
86
|
-
- Codex CLI explicitly **ignores unknown keys** (safe to include, won't break, won't be used)
|
|
87
99
|
- Cursor + Gemini support a subset; some keys are undocumented
|
|
100
|
+
- An unread key is inert rather than guaranteed harmless. See the Frontmatter Compatibility Matrix
|
|
101
|
+
below for the per-provider picture and for which entries are verified rather than inherited
|
|
88
102
|
|
|
89
103
|
### Cross-Provider Safe Template
|
|
90
104
|
|
|
@@ -129,6 +143,10 @@ Provider-specific fields can be layered on top but should be treated as non-port
|
|
|
129
143
|
|
|
130
144
|
## Frontmatter Compatibility Matrix
|
|
131
145
|
|
|
146
|
+
This is the **single canonical frontmatter matrix** for this repository, verified against
|
|
147
|
+
provider documentation on **2026-09-08** (re-verified 2026-09-09). Where any other table —
|
|
148
|
+
including the third-party `npx skills` matrix below — disagrees with it, this table governs.
|
|
149
|
+
|
|
132
150
|
Legend: ✅ documented support | ⚠️ provider-specific semantics | 💤 ignored (documented) | ❓ not documented / unknown
|
|
133
151
|
|
|
134
152
|
| Field | Agent Skills Spec | Cursor | Claude Code | Codex CLI | Copilot | Gemini CLI |
|
|
@@ -151,7 +169,22 @@ Legend: ✅ documented support | ⚠️ provider-specific semantics | 💤 ignor
|
|
|
151
169
|
² Claude Code uses first paragraph of body if `description` omitted
|
|
152
170
|
³ Copilot may require `license` in practice (see https://github.com/github/copilot-cli/issues/894)
|
|
153
171
|
|
|
154
|
-
**
|
|
172
|
+
**Consolidation note (2026-09-08).** This table absorbed the shorter 5-column matrix that
|
|
173
|
+
`create-agnostic-skill/SKILL.md` used to carry. Every field row from that table survives here. Two cells
|
|
174
|
+
were deliberately changed rather than dropped silently: the old table asserted Cursor `❌` for
|
|
175
|
+
`context` / `agent` and for `hooks`, and no current Cursor documentation substantiates a positive claim of
|
|
176
|
+
non-support, so both are recorded here as `❓ not documented` instead. The old table carried no footnote or
|
|
177
|
+
caveat that is missing above.
|
|
178
|
+
|
|
179
|
+
**Key takeaway:** `name` + `description` are the only truly portable interface. Layer provider-specific
|
|
180
|
+
fields on top of that baseline, but treat an unread key as inert rather than guaranteed harmless.
|
|
181
|
+
|
|
182
|
+
**Codex and unknown keys — unverified as of 2026-09-08.** This document previously stated that Codex CLI
|
|
183
|
+
explicitly ignores unknown frontmatter keys. That statement is retained here as an inherited claim, not a
|
|
184
|
+
checked one: the current Codex skills documentation at https://learn.chatgpt.com/docs/build-skills carries no
|
|
185
|
+
statement about unknown or extra frontmatter keys (checked 2026-09-08, re-checked 2026-09-09). The `💤 ignored`
|
|
186
|
+
Codex cells above rest on that earlier, no-longer-restated documentation. Do not depend on a Claude-only or
|
|
187
|
+
Cursor-only field having any effect under Codex, and do not treat its inertness there as documented.
|
|
155
188
|
|
|
156
189
|
---
|
|
157
190
|
|
|
@@ -222,7 +255,7 @@ supported home for Cursor-only skills. Cursor also reads `.claude/skills/` and
|
|
|
222
255
|
|
|
223
256
|
### Codex CLI (OpenAI)
|
|
224
257
|
|
|
225
|
-
**Docs:** https://
|
|
258
|
+
**Docs:** https://learn.chatgpt.com/docs/build-skills
|
|
226
259
|
|
|
227
260
|
**Skill locations (by precedence, high → low):**
|
|
228
261
|
|
|
@@ -238,10 +271,10 @@ supported home for Cursor-only skills. Cursor also reads `.claude/skills/` and
|
|
|
238
271
|
**Codex-specific behaviors:**
|
|
239
272
|
|
|
240
273
|
- **Uses `.agents/skills/` natively at all scopes** — Codex scans `.agents/skills/` from CWD up to repo root, plus `$HOME/.agents/skills` for user-level
|
|
241
|
-
- **Ignores unknown frontmatter keys** — you can include Claude/Cursor-specific fields without breaking Codex, but they won't affect behavior
|
|
242
274
|
- **Does NOT deduplicate** same-named skills — multiple can appear in selectors
|
|
243
275
|
- `name`: ≤ 100 chars, **single line** (spec says 64; use 64 for max portability)
|
|
244
|
-
-
|
|
276
|
+
- **Skill-list context budget (verified 2026-09-08 against https://learn.chatgpt.com/docs/build-skills, re-verified 2026-09-09):** the initial skills list — each skill's name, description, and file path — uses at most 2% of the model's context window, or 8,000 characters when the context window is unknown. If many skills are installed, Codex shortens skill descriptions first, and for large skill sets it may omit skills from the list and show a warning. The budget applies only to the initial list; the full `SKILL.md` is read once a skill is selected. The page states **no** single-line requirement and **no** character limit for `description`
|
|
277
|
+
- `description`: OAT's own house rule — not a Codex rule — is a single-line scalar of at most 500 characters. `validateOatSkills` in `packages/cli/src/validation/skills.ts` enforces it **only for skills whose directory name starts with `oat-`**; for every other skill it is an unenforced repository authoring convention. Backstops in `packages/cli/src/validation/skills.test.ts`: `it('reports description longer than 500 characters')` and `it('does not report a description longer than 500 characters for a non-oat-* skill')`. Because implicit matching depends on `description`, front-load trigger keywords so the skill still matches when a host shortens it
|
|
245
278
|
- Markdown body stays on disk and **is not injected unless explicitly invoked**
|
|
246
279
|
- Built-in `$skill-creator` and `$skill-installer` skills
|
|
247
280
|
- `/skills` slash command or `$` prefix for explicit invocation
|
|
@@ -368,6 +401,12 @@ For automated distribution, use **OAT sync** (for local/internal skills) or **`n
|
|
|
368
401
|
|
|
369
402
|
```bash
|
|
370
403
|
# OAT sync — manages local canonical → provider distribution with manifest tracking
|
|
404
|
+
# --scope all is correct here: this section is about user-level distribution.
|
|
405
|
+
# --scope project writes only this repository's provider views; --scope user writes only
|
|
406
|
+
# the invoking user's home-scope views; --scope all writes both and is the default when
|
|
407
|
+
# the flag is omitted. Inside a repository, prefer --scope project. Owner: computePlans in
|
|
408
|
+
# packages/cli/src/commands/sync/index.ts (the project/user mapping split); backstop:
|
|
409
|
+
# packages/cli/src/commands/sync/index.test.ts.
|
|
371
410
|
oat sync --scope all
|
|
372
411
|
|
|
373
412
|
# npx skills — installs remote skills from GitHub or skills.sh
|
|
@@ -385,7 +424,11 @@ and `~/.copilot/skills/` as legacy Copilot adoption inputs, not mirrors.
|
|
|
385
424
|
|
|
386
425
|
## Cross-Tool Compatibility (npx skills Matrix)
|
|
387
426
|
|
|
388
|
-
|
|
427
|
+
This is a **third-party, vendor-published claim** from the `npx skills` CLI compatibility matrix,
|
|
428
|
+
reproduced as published (retrieved 2026-09-08, re-checked 2026-09-09), not independently verified here.
|
|
429
|
+
Where it disagrees with the canonical Frontmatter Compatibility Matrix above — notably on `allowed-tools`,
|
|
430
|
+
which it marks supported everywhere while the canonical matrix records `💤 ignored` for Codex and `❓` for
|
|
431
|
+
Cursor — **the canonical matrix governs**.
|
|
389
432
|
|
|
390
433
|
| Feature | Claude Code | Codex | Cursor | Copilot | Gemini CLI | Amp | Roo | OpenCode | Cline |
|
|
391
434
|
| --------------- | ----------- | ----- | ------ | ------- | ---------- | --- | --- | -------- | ----- |
|
|
@@ -420,7 +463,7 @@ At startup, agents load _only_ `name` + `description` across potentially 100+ sk
|
|
|
420
463
|
|
|
421
464
|
1. **Lead with triggering conditions**: "Use when…" / "Run this when…" / "Triggers when…"
|
|
422
465
|
2. **Include keywords for disambiguation**: nouns + verbs that differentiate from similar skills
|
|
423
|
-
3. **Keep it single-line**:
|
|
466
|
+
3. **Keep it single-line**: OAT's house rule is a single-line scalar of at most 500 characters — `validateOatSkills` in `packages/cli/src/validation/skills.ts` enforces it only for skills whose directory name starts with `oat-`, backstopped by `it('reports description longer than 500 characters')` and `it('does not report a description longer than 500 characters for a non-oat-* skill')` in `packages/cli/src/validation/skills.test.ts`. No provider is documented as requiring it; the spec allows 1024
|
|
424
467
|
4. **Don't summarize the workflow**: providers route on description without reading the body
|
|
425
468
|
|
|
426
469
|
Examples:
|
|
@@ -481,7 +524,7 @@ Examples:
|
|
|
481
524
|
|
|
482
525
|
Same-named skills at a more specific scope overwrite those from a less specific scope. This mirrors the AGENTS.md "nearest file wins" pattern and is well-suited for monorepos where packages need different conventions.
|
|
483
526
|
|
|
484
|
-
**Source:** https://
|
|
527
|
+
**Source:** https://learn.chatgpt.com/docs/build-skills, https://developers.openai.com/codex/config-advanced/, https://github.com/vercel-labs/skills
|
|
485
528
|
|
|
486
529
|
### Q: What's the practical token cost of skills via progressive disclosure vs. same content in AGENTS.md?
|
|
487
530
|
|
|
@@ -563,7 +606,7 @@ ln -s ../../.agents/skills/my-skill .claude/skills/my-skill # Claude Code + C
|
|
|
563
606
|
`.agents/skills/` natively at project and user scope. No skill symlinks are
|
|
564
607
|
needed for those providers.
|
|
565
608
|
|
|
566
|
-
**Source:** https://cursor.com/docs/context/skills, https://code.visualstudio.com/docs/copilot/customization/agent-skills, https://
|
|
609
|
+
**Source:** https://cursor.com/docs/context/skills, https://code.visualstudio.com/docs/copilot/customization/agent-skills, https://learn.chatgpt.com/docs/build-skills, https://github.com/vercel-labs/skills
|
|
567
610
|
|
|
568
611
|
### Q: How does Claude Code's skill description character budget interact with many installed skills?
|
|
569
612
|
|
|
@@ -589,7 +632,7 @@ needed for those providers.
|
|
|
589
632
|
|
|
590
633
|
**Answer:** Uncertain. The `npx skills` compatibility matrix marks `allowed-tools` as ✅ for Cursor, but Cursor's own documentation does not explicitly document the field. Their docs only list `name`, `description`, `license`, `compatibility`, `metadata`, and `disable-model-invocation` as supported frontmatter.
|
|
591
634
|
|
|
592
|
-
The safe assumption: Cursor likely doesn't error on `allowed-tools
|
|
635
|
+
The safe assumption: Cursor likely doesn't error on `allowed-tools`, but whether it actually restricts tool access based on the field is unconfirmed. (The comparable Codex "ignores unknown keys" behavior is itself an inherited, unverified claim — see the note under the Frontmatter Compatibility Matrix.) Treat `allowed-tools` as **Claude Code-specific for enforcement** and include it as a documentation signal for other tools.
|
|
593
636
|
|
|
594
637
|
**Source:** https://cursor.com/docs/context/skills, https://github.com/vercel-labs/skills#compatibility
|
|
595
638
|
|
|
@@ -597,7 +640,7 @@ The safe assumption: Cursor likely doesn't error on `allowed-tools` (similar to
|
|
|
597
640
|
|
|
598
641
|
**Answer:** Treat this as a two-layer pattern: frontmatter hinting for discovery, then provider-native interaction at runtime.
|
|
599
642
|
|
|
600
|
-
- **Layer 1 (discovery UX):** Use `argument-hint` when a provider supports it (for slash/autocomplete discoverability), but do not treat it as input collection. Codex
|
|
643
|
+
- **Layer 1 (discovery UX):** Use `argument-hint` when a provider supports it (for slash/autocomplete discoverability), but do not treat it as input collection. `argument-hint` is not documented as functional under Codex; see the unknown-key note under the Frontmatter Compatibility Matrix for how far that claim is verified.
|
|
601
644
|
- **Layer 2 (runtime clarification):** Use the provider's native user-question mechanism when available:
|
|
602
645
|
- **Claude Agent SDK:** Handle `AskUserQuestion` in `canUseTool`. If you restrict tools with a `tools` array, include `AskUserQuestion` explicitly. Parse `questions[]` (`question`, `header`, `options`, `multiSelect`) and return `answers` mapped by question text.
|
|
603
646
|
- **Codex:** Use `request_user_input` when the runtime exposes it. As of PR #12735 (Feb 25, 2026), Codex app-server behavior was expanded so Default mode can use `request_user_input`, with guidance to prefer assumptions first and ask only when unavoidable; rollout can still be mode/config dependent in host environments.
|
|
@@ -43,7 +43,7 @@ metadata:
|
|
|
43
43
|
# only when `metadata.version` is absent.
|
|
44
44
|
# author: my-org
|
|
45
45
|
|
|
46
|
-
# === Claude Code / Cursor extension fields (
|
|
46
|
+
# === Claude Code / Cursor extension fields (not read by every provider) ===
|
|
47
47
|
argument-hint: '[required-arg] [--optional-flag]'
|
|
48
48
|
# Claude Code only: Shows in autocomplete after /skill-name
|
|
49
49
|
|
|
@@ -52,6 +52,10 @@ disable-model-invocation: true
|
|
|
52
52
|
|
|
53
53
|
allowed-tools: Read, Write, Glob, Grep
|
|
54
54
|
# Claude Code only: Tools agent can use without permission prompts
|
|
55
|
+
# Write the list comma-separated: the spec's example is space-delimited, but OAT
|
|
56
|
+
# writes commas and never parses the separator. Backstop:
|
|
57
|
+
# it('declares allowed-tools as a comma-separated list in every canonical skill')
|
|
58
|
+
# in packages/cli/src/validation/skills.test.ts
|
|
55
59
|
|
|
56
60
|
user-invocable: true
|
|
57
61
|
# Claude Code only: Set false for helper skills that shouldn't appear in / menu
|
|
@@ -116,7 +120,6 @@ Include code blocks for commands:
|
|
|
116
120
|
```bash
|
|
117
121
|
example command
|
|
118
122
|
```
|
|
119
|
-
````
|
|
120
123
|
|
|
121
124
|
### Step 2: Second Step Title
|
|
122
125
|
|
|
@@ -174,17 +177,16 @@ Successful completion means:
|
|
|
174
177
|
- ✅ Second condition is met
|
|
175
178
|
- ✅ Artifacts created or modified as expected
|
|
176
179
|
- ✅ Skill can be invoked with /skill-name
|
|
177
|
-
|
|
178
|
-
```
|
|
180
|
+
````
|
|
179
181
|
|
|
180
182
|
## Detail Level Guidelines
|
|
181
183
|
|
|
182
|
-
| Skill Type
|
|
183
|
-
|
|
184
|
-
| Complex workflows
|
|
185
|
-
| Simple command-like
|
|
186
|
-
| Reference/standards
|
|
187
|
-
| Helper (auto-invoked) | Moderate
|
|
184
|
+
| Skill Type | Detail Level | Examples |
|
|
185
|
+
| --------------------- | ------------ | ------------------------------ |
|
|
186
|
+
| Complex workflows | Detailed | docs-new, docs-review |
|
|
187
|
+
| Simple command-like | Concise | update-doc-refs, create-ticket |
|
|
188
|
+
| Reference/standards | Detailed | repo-documentation |
|
|
189
|
+
| Helper (auto-invoked) | Moderate | read-relevant-docs |
|
|
188
190
|
|
|
189
191
|
## Versioning Guidance
|
|
190
192
|
|
|
@@ -197,15 +199,16 @@ Successful completion means:
|
|
|
197
199
|
|
|
198
200
|
**Portable baseline:** `name` + `description` are the only fields that work identically across all providers. Everything else is either spec-optional or provider-specific.
|
|
199
201
|
|
|
200
|
-
**Safe layering strategy:** Start with the portable fields, then layer provider-specific fields on top.
|
|
202
|
+
**Safe layering strategy:** Start with the portable fields, then layer provider-specific fields on top. Providers differ in which extension fields they read, and an unread field is inert rather than guaranteed harmless, so treat a Claude-specific field as having no effect elsewhere rather than as universally safe. The dated per-provider picture lives in one place: see `references/docs/skills-guide.md`.
|
|
201
203
|
|
|
202
|
-
**Description constraints
|
|
203
|
-
|
|
204
|
-
- ≤ 500 chars (
|
|
204
|
+
**Description constraints:**
|
|
205
|
+
|
|
206
|
+
- Single line, ≤ 500 chars — OAT's house rule, not a provider requirement. `validateOatSkills` in `packages/cli/src/validation/skills.ts` enforces it only for skills whose directory name starts with `oat-`; for every other skill it is an unenforced convention this repository follows for portability. Backstops in `packages/cli/src/validation/skills.test.ts`: `it('reports description longer than 500 characters')` and `it('does not report a description longer than 500 characters for a non-oat-* skill')`. The spec allows 1024
|
|
205
207
|
- Lead with "Use when..." or "Run this when..."
|
|
206
208
|
- Front-load trigger keywords in first 50 chars (may be truncated at scale)
|
|
207
209
|
|
|
208
210
|
**Skill budget awareness (Claude Code):**
|
|
211
|
+
|
|
209
212
|
- Claude Code has a ~16,000 character budget for skill descriptions at startup
|
|
210
213
|
- At 60+ skills, descriptions may be silently truncated
|
|
211
214
|
- Keep descriptions concise; the body handles detail
|
|
@@ -213,4 +216,3 @@ Successful completion means:
|
|
|
213
216
|
**Shared references:** Keep a shared doc's canonical copy in `.agents/docs/` (edit it in one place). If a distributed skill needs it at invocation time, vendor it into `references/docs/` as a symlink to the canonical file (`ln -s ../../../../docs/my-guide.md references/docs/my-guide.md`); the build materializes the symlink so the doc travels with the skill. Reference the bundled `references/docs/...` path — a bare `.agents/docs/...` reference dangles once the skill is installed in another repo.
|
|
214
217
|
|
|
215
218
|
For the full compatibility matrix and resolved research questions, see `references/docs/skills-guide.md`.
|
|
216
|
-
```
|
|
@@ -37,15 +37,13 @@ See `frontmatter/` for provider-specific frontmatter examples.
|
|
|
37
37
|
```{lang}
|
|
38
38
|
{example}
|
|
39
39
|
```
|
|
40
|
-
````
|
|
41
40
|
|
|
42
41
|
### Incorrect
|
|
43
42
|
|
|
44
43
|
```{lang}
|
|
45
44
|
{counter-example}
|
|
46
45
|
```
|
|
47
|
-
|
|
48
|
-
```
|
|
46
|
+
````
|
|
49
47
|
|
|
50
48
|
## Guidance
|
|
51
49
|
|
|
@@ -56,4 +54,3 @@ See `frontmatter/` for provider-specific frontmatter examples.
|
|
|
56
54
|
- Only the frontmatter wrapper changes per provider (see `frontmatter/` directory)
|
|
57
55
|
- Use progressive disclosure: keep the rule short and link to deeper docs/examples when needed
|
|
58
56
|
- Do not encode style trivia unless it is backed by repo evidence and genuinely helps the matching files
|
|
59
|
-
```
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: true
|
|
|
5
5
|
user-invocable: false
|
|
6
6
|
allowed-tools: Read
|
|
7
7
|
metadata:
|
|
8
|
-
version: 1.2.
|
|
8
|
+
version: 1.2.8
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Dispatching OAT Subagents
|
|
@@ -175,7 +175,9 @@ terminal outcome, not a pre-start rejection, and must be recorded through
|
|
|
175
175
|
`child_outcome`. If you cannot prove the child never existed, you cannot set
|
|
176
176
|
`provesNoChildStarted: true`, and no fallback is authorized.
|
|
177
177
|
|
|
178
|
-
|
|
178
|
+
The calling workflow records each launch in its own run record (request ID,
|
|
179
|
+
`Dispatch:` stamp, launch status, terminal outcome). Writing a per-dispatch file with `oat project dispatch record` is optional and off by default: no lifecycle skill or command consumes those files, so do not write them unless the host has explicitly opted in. A host that has opted
|
|
180
|
+
in passes the validated record and event on standard input:
|
|
179
181
|
|
|
180
182
|
```bash
|
|
181
183
|
oat project dispatch record \
|
|
@@ -6,7 +6,7 @@ disable-model-invocation: true
|
|
|
6
6
|
user-invocable: true
|
|
7
7
|
allowed-tools: Read, Bash, Glob, Grep, AskUserQuestion
|
|
8
8
|
metadata:
|
|
9
|
-
version: 1.2.
|
|
9
|
+
version: 1.2.4
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# OAT Doctor
|
|
@@ -238,11 +238,8 @@ OAT ▸ DOCTOR SUMMARY
|
|
|
238
238
|
| Pack | Scope | Skills | Status |
|
|
239
239
|
| --------- | ------- | ------ | -------- |
|
|
240
240
|
| core | user | 2/2 | current |
|
|
241
|
-
| docs | project | 7/7 | current |
|
|
242
241
|
| workflows | project | 40/40 | current |
|
|
243
242
|
| ideas | user | 4/4 | current |
|
|
244
|
-
| project-management | project | 5/5 | current |
|
|
245
|
-
| research | project | 6/6 | current |
|
|
246
243
|
| utility | project | 10/10 | outdated |
|
|
247
244
|
|
|
248
245
|
## Outdated Skills
|
|
@@ -82,7 +82,8 @@ artifact already owned by the calling workflow:
|
|
|
82
82
|
|
|
83
83
|
- planning and artifact decisions: the relevant artifact plus its review row;
|
|
84
84
|
- implementation and boundary decisions: `implementation.md`;
|
|
85
|
-
- review and dispatch decisions: the
|
|
85
|
+
- review and dispatch decisions: the run record in `implementation.md` (request
|
|
86
|
+
ID, `Dispatch:` stamp, launch status, terminal outcome) and the referenced
|
|
86
87
|
review artifact;
|
|
87
88
|
- gate execution: structured gate result, attempt count, and disposition;
|
|
88
89
|
- documentation and completion decisions: `state.md` and the normal summary or
|
|
@@ -276,7 +277,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
276
277
|
| `oat-dispatch-subagents/references/record-schema.md` | `78f8069274a8 -> NG`; `1c9a84c4d1e0 -> NG`; `2a63da6e3a96 -> NG`; `30762d53b043 -> NG` |
|
|
277
278
|
| `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
|
|
278
279
|
| `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
|
|
279
|
-
| `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `8305b5bb65ef -> NG`; `2cd0503c0ef5 -> NG`; `44f54ef110a5 -> NG`; `fbf1ff53808a -> NG`; `6b774ee567b4 -> NG`; `8cc1fa5aab1e -> COMPLETE-01`; `4c209fbb4716 -> COMPLETE-01`; `02e4175e1171 -> COMPLETE-01`; `d698d4f98e76 -> COMPLETE-01`; `9f86a7218d93 -> COMPLETE-01`; `024713698d9a -> COMPLETE-01`; `c327995053fa -> COMPLETE-01`; `61f81d4ec7c1 -> COMPLETE-01`; `14fb2e56809f -> COMPLETE-01`; `7d4ff668744d -> COMPLETE-01`; `502a6c141784 -> COMPLETE-01`; `fb7e2db356af -> COMPLETE-01`; `f73f8476360a -> NG`; `1e15f420039f -> NG`; `cc234032ddd7 -> NG`; `
|
|
280
|
+
| `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `8305b5bb65ef -> NG`; `2cd0503c0ef5 -> NG`; `44f54ef110a5 -> NG`; `fbf1ff53808a -> NG`; `6b774ee567b4 -> NG`; `8cc1fa5aab1e -> COMPLETE-01`; `4c209fbb4716 -> COMPLETE-01`; `02e4175e1171 -> COMPLETE-01`; `d698d4f98e76 -> COMPLETE-01`; `9f86a7218d93 -> COMPLETE-01`; `024713698d9a -> COMPLETE-01`; `c327995053fa -> COMPLETE-01`; `61f81d4ec7c1 -> COMPLETE-01`; `14fb2e56809f -> COMPLETE-01`; `7d4ff668744d -> COMPLETE-01`; `502a6c141784 -> COMPLETE-01`; `fb7e2db356af -> COMPLETE-01`; `f73f8476360a -> NG`; `1e15f420039f -> NG`; `cc234032ddd7 -> NG`; `1dd54687229b -> NG`; `fc05c8303cd2 -> NG`; `24be721d635e -> NG` |
|
|
280
281
|
| `oat-project-lite/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
281
282
|
| `oat-project-implement/references/completion-and-closeout.md` | `87f1424a8692 -> NG`; `6b1ec05182f0 -> IMPLEMENT-11`; `e6d696a27c91 -> NG`; `c77f8ccb52ad -> NG`; `48de2614c0ba -> IMPLEMENT-11`; `32d53f5212e5 -> IMPLEMENT-11`; `7cdb4a9c57b7 -> IMPLEMENT-11`; `16ffc0aa099b -> IMPLEMENT-11`; `d6868ea10b3f -> IMPLEMENT-11`; `4f05ff5567be -> IMPLEMENT-11`; `c70b47ae7a6d -> IMPLEMENT-11`; `5fafd093b58e -> NG`; `21ceaf7e658a -> NG`; `249427a9f475 -> NG`; `8a7ec13a9b7c -> NG`; `9aeb7fce2012 -> IMPLEMENT-18`; `f11a7cdda220 -> IMPLEMENT-18`; `4523ac029152 -> NG`; `6e87b08c4046 -> NG`; `baa6052c7f0a -> IMPLEMENT-18`; `27d3fad116b1 -> IMPLEMENT-18`; `2cfbeb4388a5 -> IMPLEMENT-18`; `c56ea56a56db -> NG`; `43e2e3c1380d -> IMPLEMENT-17`; `b49690277fb5 -> NG`; `df12304d6a36 -> NG`; `52eacac11fef -> IMPLEMENT-17`; `60092df6b17b -> IMPLEMENT-17`; `361872c6b00e -> IMPLEMENT-17`; `d2bc711a75fb -> IMPLEMENT-17` |
|
|
282
283
|
| `oat-project-quick-start/SKILL.md` | `4f393afc3b4d -> QS-13`; `40ddcac880ef -> NG` |
|