@ikon85/agent-workflow-kit 0.34.6 → 0.36.0
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/.agents/skills/ask-matt/SKILL.md +8 -0
- package/.agents/skills/audit-skills/SKILL.md +8 -0
- package/.agents/skills/board-to-waves/SKILL.md +8 -0
- package/.agents/skills/census-update/SKILL.md +8 -0
- package/.agents/skills/code-review/SKILL.md +8 -0
- package/.agents/skills/codebase-design/SKILL.md +8 -0
- package/.agents/skills/codex-adapter-sync/SKILL.md +8 -0
- package/.agents/skills/decision-gate/SKILL.md +8 -0
- package/.agents/skills/diagnose/SKILL.md +8 -0
- package/.agents/skills/domain-modeling/SKILL.md +8 -0
- package/.agents/skills/git-worktree-recover/SKILL.md +8 -0
- package/.agents/skills/grill-me/SKILL.md +8 -0
- package/.agents/skills/grill-with-docs/SKILL.md +8 -0
- package/.agents/skills/implement/SKILL.md +8 -0
- package/.agents/skills/improve-codebase-architecture/SKILL.md +8 -0
- package/.agents/skills/kit-release/SKILL.md +8 -0
- package/.agents/skills/kit-update/SKILL.md +32 -11
- package/.agents/skills/local-ci/SKILL.md +8 -0
- package/.agents/skills/memory-lifecycle/SKILL.md +8 -0
- package/.agents/skills/orchestrate-wave/SKILL.md +2 -2
- package/.agents/skills/project-release/SKILL.md +8 -0
- package/.agents/skills/prototype/SKILL.md +8 -0
- package/.agents/skills/research/SKILL.md +8 -0
- package/.agents/skills/resolving-merge-conflicts/SKILL.md +8 -0
- package/.agents/skills/retro/SKILL.md +19 -3
- package/.agents/skills/scale-check/SKILL.md +8 -0
- package/.agents/skills/security-audit/SKILL.md +8 -0
- package/.agents/skills/setup-workflow/SKILL.md +52 -1
- package/.agents/skills/setup-workflow/contribution-routing.md +52 -0
- package/.agents/skills/setup-workflow/orchestrate-wave-seed.md +1 -0
- package/.agents/skills/setup-workflow/spec-self-critique-seed.md +1 -0
- package/.agents/skills/spec-self-critique/SKILL.md +8 -0
- package/.agents/skills/tdd/SKILL.md +8 -0
- package/.agents/skills/to-issues/SKILL.md +8 -0
- package/.agents/skills/to-prd/SKILL.md +8 -0
- package/.agents/skills/to-waves/SKILL.md +8 -0
- package/.agents/skills/triage/SKILL.md +8 -0
- package/.agents/skills/verify-spike/SKILL.md +8 -0
- package/.agents/skills/wayfinder/SKILL.md +8 -0
- package/.agents/skills/wrapup/SKILL.md +8 -0
- package/.claude/hooks/kit-origin-edit-hint.py +18 -13
- package/.claude/skills/ask-matt/SKILL.md +8 -0
- package/.claude/skills/audit-skills/SKILL.md +8 -0
- package/.claude/skills/board-to-waves/SKILL.md +8 -0
- package/.claude/skills/census-update/SKILL.md +8 -0
- package/.claude/skills/code-review/SKILL.md +8 -0
- package/.claude/skills/codebase-design/SKILL.md +8 -0
- package/.claude/skills/codex-build/SKILL.md +8 -0
- package/.claude/skills/codex-review/SKILL.md +8 -0
- package/.claude/skills/decision-gate/SKILL.md +8 -0
- package/.claude/skills/diagnose/SKILL.md +8 -0
- package/.claude/skills/domain-modeling/SKILL.md +8 -0
- package/.claude/skills/git-guardrails-claude-code/SKILL.md +8 -0
- package/.claude/skills/git-worktree-recover/SKILL.md +8 -0
- package/.claude/skills/grill-me/SKILL.md +8 -0
- package/.claude/skills/grill-me-codex/SKILL.md +8 -0
- package/.claude/skills/grill-with-docs/SKILL.md +8 -0
- package/.claude/skills/grill-with-docs-codex/SKILL.md +8 -0
- package/.claude/skills/implement/SKILL.md +8 -0
- package/.claude/skills/improve-codebase-architecture/SKILL.md +8 -0
- package/.claude/skills/kit-release/SKILL.md +8 -0
- package/.claude/skills/kit-update/SKILL.md +32 -11
- package/.claude/skills/local-ci/SKILL.md +8 -0
- package/.claude/skills/memory-lifecycle/SKILL.md +8 -0
- package/.claude/skills/orchestrate-wave/SKILL.md +2 -2
- package/.claude/skills/project-release/SKILL.md +8 -0
- package/.claude/skills/prototype/SKILL.md +8 -0
- package/.claude/skills/research/SKILL.md +8 -0
- package/.claude/skills/resolving-merge-conflicts/SKILL.md +8 -0
- package/.claude/skills/retro/SKILL.md +19 -3
- package/.claude/skills/scale-check/SKILL.md +8 -0
- package/.claude/skills/security-audit/SKILL.md +8 -0
- package/.claude/skills/setup-pre-commit/SKILL.md +8 -0
- package/.claude/skills/setup-workflow/SKILL.md +52 -1
- package/.claude/skills/setup-workflow/contribution-routing.md +52 -0
- package/.claude/skills/setup-workflow/orchestrate-wave-seed.md +1 -0
- package/.claude/skills/setup-workflow/spec-self-critique-seed.md +1 -0
- package/.claude/skills/spec-self-critique/SKILL.md +8 -0
- package/.claude/skills/tdd/SKILL.md +8 -0
- package/.claude/skills/to-issues/SKILL.md +8 -0
- package/.claude/skills/to-prd/SKILL.md +8 -0
- package/.claude/skills/to-waves/SKILL.md +8 -0
- package/.claude/skills/triage/SKILL.md +8 -0
- package/.claude/skills/verify-spike/SKILL.md +8 -0
- package/.claude/skills/wayfinder/SKILL.md +8 -0
- package/.claude/skills/wrapup/SKILL.md +8 -0
- package/.claude/skills/write-a-skill/SKILL.md +8 -0
- package/README.md +172 -5
- package/agent-workflow-kit.package.json +149 -89
- package/docs/agents/skills/local-ci.md +1 -0
- package/docs/agents/skills/orchestrate-wave.md +1 -1
- package/docs/agents/skills/spec-self-critique.md +1 -1
- package/package.json +1 -1
- package/scripts/find-by-marker.py +2 -0
- package/scripts/project-skill-extension.mjs +37 -0
- package/scripts/readiness.mjs +2 -1
- package/scripts/test_marker_lib.py +8 -0
- package/scripts/test_retro_wrapup_contract.py +6 -4
- package/scripts/test_skill_publish_audit.py +9 -1
- package/src/cli.mjs +86 -12
- package/src/commands/init.mjs +24 -0
- package/src/commands/own.mjs +7 -3
- package/src/commands/update.mjs +87 -21
- package/src/lib/bundle.mjs +5 -0
- package/src/lib/contributionBridge.mjs +176 -0
- package/src/lib/contributionRouting.mjs +152 -0
- package/src/lib/manifest.mjs +17 -2
- package/src/lib/ownershipClassifier.mjs +65 -0
- package/src/lib/projectSkillExtension.mjs +60 -0
- package/src/lib/skillRegistry.mjs +167 -0
- package/src/lib/updateCandidate.mjs +105 -4
- package/src/lib/updateDecisions.mjs +5 -0
- package/src/lib/updateReconcile.mjs +102 -9
- package/src/lib/verifyUpdateCandidate.mjs +28 -1
- package/src/lib/verifyUpdateCandidateProtocol.mjs +2 -0
- package/src/lib/verifyUpdateCandidateTransaction.mjs +19 -3
|
@@ -3,6 +3,14 @@ name: kit-update
|
|
|
3
3
|
description: "Preview and transactionally apply a parity-verified agent-workflow-kit release without overwriting local modifications or auto-resolving conflicts."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill kit-update --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Kit Update
|
|
7
15
|
|
|
8
16
|
Update an installed consumer only from the public scoped package
|
|
@@ -84,21 +92,34 @@ release contain the same artifact.
|
|
|
84
92
|
core, and still unresolved capability states. Missing readiness for genuinely
|
|
85
93
|
new behavior does not block a compatible kit update; only that behavior stays
|
|
86
94
|
unavailable. A compatible update must stop if it would make previously
|
|
87
|
-
available skill core unavailable. `--yes` answers only
|
|
88
|
-
|
|
95
|
+
available skill core unavailable. `--yes` answers only actions whose
|
|
96
|
+
interpretation is already known and never supplies a readiness or ownership
|
|
97
|
+
decision. An untracked destination at a new Kit path remains
|
|
98
|
+
`ambiguous-collision` under `--yes`; interactive and automated runs must
|
|
99
|
+
explicitly choose Project extension, Contribution Bridge, Explicit fork, or
|
|
100
|
+
clean Core. Diagnostics name only path, ledger/package/extension evidence,
|
|
101
|
+
and safe routes—never file content. Automated update pull
|
|
89
102
|
requests carry the same availability summary and remain manual-merge only.
|
|
90
103
|
|
|
91
104
|
For each conflicted kit-shipped file, always ask the user whether the local
|
|
92
105
|
edit is a generic improvement or project-specific; never decide or act
|
|
93
|
-
automatically. For a generic improvement
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
106
|
+
automatically. For a generic improvement retained as a bridge, run
|
|
107
|
+
`contribute status <path> --surface=pre-update` and follow only its
|
|
108
|
+
repository-capability routes. Missing, disabled, invalid, or unverifiable
|
|
109
|
+
configuration is a generic Consumer and receives preserve/Explicit-fork
|
|
110
|
+
guidance, never maintainer language or an inferred upstream target. A valid
|
|
111
|
+
capability may add local preparation and may describe an upstream pull
|
|
112
|
+
request, but the latter still needs a sanitized exact preview and separate
|
|
113
|
+
explicit approval before any remote command. For a project-specific edit, recommend
|
|
114
|
+
`npx @ikon85/agent-workflow-kit@latest own <path> --as=explicit-fork` so
|
|
115
|
+
future updates treat that path as an independent fork. A generic experiment
|
|
116
|
+
retained only until it returns upstream uses
|
|
117
|
+
`npx @ikon85/agent-workflow-kit@latest contribute start <path>`. Prepare its
|
|
118
|
+
bounded local artifact, when the route report permits it, with `contribute prepare <path>
|
|
119
|
+
--output=.agent-workflow-kit/contributions/<name>.json`. Both commands are
|
|
120
|
+
local-only; opening an issue/PR or pushing remains a separate explicit
|
|
121
|
+
approval. A matching released Core version retires the bridge during
|
|
122
|
+
reimport.
|
|
102
123
|
|
|
103
124
|
4. If a candidate is interrupted, discard its reported stage directory or
|
|
104
125
|
resume the transaction through the update API's `resumeFrom` option. Do not
|
|
@@ -3,6 +3,14 @@ name: local-ci
|
|
|
3
3
|
description: Run the repo's local CI gate before opening a PR — the stand-in for GitHub required status checks when your plan or repo visibility can't enforce them (a Free-plan private repo has no branch protection). Use before every PR, when a guard/test red is suspected on a branch, or when wiring/repairing the pre-push guard backstop. Triggers — "local ci", "run local ci", "pre-PR check", "why is main red", "did a guard land red".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill local-ci --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Local CI
|
|
7
15
|
|
|
8
16
|
A guard only protects if it runs on a **gate**. When your host can't enforce a
|
|
@@ -3,6 +3,14 @@ name: memory-lifecycle
|
|
|
3
3
|
description: "Preview and apply a consumer-owned memory lifecycle without crossing configured roots or overwriting active, archived, or recovery evidence. Use when a user wants to restore archived memories, inspect memory placement, or run an approved memory recovery."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill memory-lifecycle --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Memory Lifecycle
|
|
7
15
|
|
|
8
16
|
Coordinate the current repository's memory placement and recovery through the
|
|
@@ -58,8 +58,8 @@ node scripts/readiness.mjs check --skill orchestrate-wave --json
|
|
|
58
58
|
> `§Verify Recipe`, `§Headless Login`, `§Landing`) and falls back to generic
|
|
59
59
|
> instructions when the layer is absent. See **Phase 0**.
|
|
60
60
|
>
|
|
61
|
-
>
|
|
62
|
-
>
|
|
61
|
+
> Before consuming `projectRecipe`, run `node scripts/project-skill-extension.mjs inspect --skill orchestrate-wave --json`: `active` reads its `path`; `inactive` uses Core; `blocked` stops with its diagnostic.
|
|
62
|
+
> Project extensions may specialize Project details, but cannot weaken Core gates; a contradiction blocks and requires an Explicit fork.
|
|
63
63
|
<!-- readiness:end -->
|
|
64
64
|
|
|
65
65
|
## Standing rules (all phases)
|
|
@@ -3,6 +3,14 @@ name: project-release
|
|
|
3
3
|
description: "Preview and prepare one coherent version change across a consumer's profiled packages without duplicating release logic or creating commits, tags, pushes, publishes, or merges."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill project-release --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Project Release
|
|
7
15
|
|
|
8
16
|
Prepare a consumer-owned multi-package release through the kit's shared
|
|
@@ -3,6 +3,14 @@ name: prototype
|
|
|
3
3
|
description: Build a throwaway prototype to flesh out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says "prototype this", "let me play with it", "try a few designs".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill prototype --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Prototype
|
|
7
15
|
|
|
8
16
|
A prototype is **throwaway code that answers a question**. The question decides the shape.
|
|
@@ -3,6 +3,14 @@ name: research
|
|
|
3
3
|
description: Investigate a question against high-trust primary sources and capture the findings as a Markdown file in the repo. Use when the user wants a topic researched, docs or API facts gathered, or reading legwork delegated to a background agent.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill research --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
Before dispatch, resolve a provider-neutral Routing intent through
|
|
7
15
|
`src/lib/routeDispatcher.mjs` and require a Dispatch receipt from the shared
|
|
8
16
|
spawn guard. A detected transport is not authorization; AFK dispatch stops
|
|
@@ -3,6 +3,14 @@ name: resolving-merge-conflicts
|
|
|
3
3
|
description: "Use when you need to resolve an in-progress git merge/rebase conflict."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill resolving-merge-conflicts --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
1. **See the current state** of the merge/rebase. Check git history, and the conflicting files.
|
|
7
15
|
|
|
8
16
|
2. **Find the primary sources** for each conflict. Understand deeply why each change was made, and what the original intent was. Read the commit messages, check the PRs, check original issues/tickets.
|
|
@@ -4,6 +4,14 @@ disable-model-invocation: false
|
|
|
4
4
|
description: Use when the user explicitly asks for a retro after a session with PR-activity. Analyzes session friction and proposes concrete config mutations (Memory/Skill/CLAUDE.md/Hook) with per-patch approval. No file is written — findings live in the mutated config.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<!-- project-extension:protocol-v1:start -->
|
|
8
|
+
## Project extension
|
|
9
|
+
|
|
10
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill retro --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
11
|
+
|
|
12
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
13
|
+
<!-- project-extension:protocol-v1:end -->
|
|
14
|
+
|
|
7
15
|
# Retro — In-Session Deep-Dive
|
|
8
16
|
|
|
9
17
|
Trigger: user types `/retro` (optionally with a PR/Issue number, e.g. `/retro 274`).
|
|
@@ -156,9 +164,17 @@ Before formulating a patch in step 4, place **every** friction point on the thre
|
|
|
156
164
|
|
|
157
165
|
**A GitHub issue is NOT a weight tier.** A real follow-up = work to track → `python3 scripts/board-sync.py create` (step-4 table), **orthogonal** to the ladder; its "weight" follows the follow-up scope. The ladder classifies **config patches**, not "turn it into a ticket".
|
|
158
166
|
|
|
159
|
-
**Kit-repo routing target (
|
|
160
|
-
|
|
161
|
-
|
|
167
|
+
**Kit-repo routing target (capability-driven; never automatic).** When a finding
|
|
168
|
+
lands on a kit-shipped file (a consumer-manifest entry with kit origin), ask
|
|
169
|
+
whether the improvement is generic or project-specific. If it enters a
|
|
170
|
+
Contribution Bridge, run `agent-workflow-kit contribute status <path>
|
|
171
|
+
--surface=retro` and use only the reported repository-capability routes.
|
|
172
|
+
Missing, disabled, invalid, or unverifiable configuration is a generic Consumer:
|
|
173
|
+
offer preserve or Explicit fork, never infer maintainer status or an upstream
|
|
174
|
+
target from identity. A valid capability may offer local preparation. Before
|
|
175
|
+
any reported remote route runs, show the **sanitized exact preview** and require
|
|
176
|
+
separate explicit approval; changing the preview requires approval again. For a
|
|
177
|
+
project-specific improvement, recommend `own` (keep it consumer-owned).
|
|
162
178
|
|
|
163
179
|
**Target missing in the project — separate two cases cleanly:**
|
|
164
180
|
- **(a) Tier skill missing entirely** (e.g. a foreign project without `spec-self-critique`): no durable spec-time gate exists. **Memory is NOT a substitute** — passive recall doesn't catch a recurring spec defect before building. Report honestly: *"this project has no durable target for this tier"* + propose a `/setup-workflow` follow-up. **No fake guard via memory.**
|
|
@@ -4,6 +4,14 @@ disable-model-invocation: true
|
|
|
4
4
|
description: "Route an undertaking to the right altitude before any planning starts — a short plain-language dialog (3–6 questions) deciding between a Program, a Feature, a single Direct-Slice, or a Bug, then hand back a paste-ready start prompt for the chosen route. Use at the very start of a new build when the size is unclear (a new app, a big cross-cutting feature, or a where-do-I-start question). Owns the altitude criteria catalog; when in doubt it routes to Feature. NOT for slicing a chosen plan (to-issues) and NOT for clustering an existing backlog (board-to-waves)."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<!-- project-extension:protocol-v1:start -->
|
|
8
|
+
## Project extension
|
|
9
|
+
|
|
10
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill scale-check --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
11
|
+
|
|
12
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
13
|
+
<!-- project-extension:protocol-v1:end -->
|
|
14
|
+
|
|
7
15
|
# scale-check — Route an undertaking to its altitude
|
|
8
16
|
|
|
9
17
|
Answers one question in plain language: **"how big is this, and where do I start?"**
|
|
@@ -3,6 +3,14 @@ name: security-audit
|
|
|
3
3
|
description: Run the whole application's security audit as an independent two-model pass — two AI models audit the same code separately — then harden the remediation plan before any fix lands. Use when the user wants a security audit / security review of the entire app ("audit the app for vulnerabilities", "is the app secure", "security check before release"), before a release, or after the attack surface changes (new endpoint, new input source, auth change, dependency bump). NOT for reviewing a single diff/PR (that is a code review) and NOT for infrastructure hardening (firewall/ports/TLS/SSH/backups — audited separately from the application layer).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill security-audit --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# security-audit — application-layer security audit (two-model run)
|
|
7
15
|
|
|
8
16
|
Application-layer security audit of the whole repo. This skill is the **run
|
|
@@ -3,6 +3,14 @@ name: setup-pre-commit
|
|
|
3
3
|
description: Set up a native, zero-dependency git pre-commit hook (via core.hooksPath) that runs your project's type checks, linting, tests, or formatting before each commit. Use when the user wants to add pre-commit hooks, gate commits on checks, or wire commit-time typecheck/lint/test/format — no Husky or Node deps required.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill setup-pre-commit --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Setup Pre-Commit Hooks (native git, zero-dep)
|
|
7
15
|
|
|
8
16
|
## What This Sets Up
|
|
@@ -4,6 +4,14 @@ description: "Scaffolds the project layer the portable workflow skills assume
|
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<!-- project-extension:protocol-v1:start -->
|
|
8
|
+
## Project extension
|
|
9
|
+
|
|
10
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill setup-workflow --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
11
|
+
|
|
12
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
13
|
+
<!-- project-extension:protocol-v1:end -->
|
|
14
|
+
|
|
7
15
|
# Setup Workflow
|
|
8
16
|
|
|
9
17
|
Scaffold the **project layer** the portable workflow skills (`to-prd`, `to-issues`, `triage`, `spec-self-critique`, `retro`, `wrapup`, …) read at runtime. The generic skills ship the *how*; this skill writes the project-specific *what* into the consumer repo, where `retro`/`wrapup` then grow it over time.
|
|
@@ -48,6 +56,28 @@ Every project-layer file this skill (or `npx init`) creates begins with **one se
|
|
|
48
56
|
- **CLAUDE.md / AGENTS.md carry no sentinel** (they are not ours) → reconcile **per section** via the block headers `## Workflow` / `## Agent skills` / `## Prod`: add a missing block, never overwrite an existing one or surrounding user content.
|
|
49
57
|
- **Never overwrite filled content.** A re-run only fills what is missing/stub. End with a report: `<file>: created · filled · skipped (already filled / legacy / not-applicable)`.
|
|
50
58
|
|
|
59
|
+
## Universal Project skill extensions
|
|
60
|
+
|
|
61
|
+
Every shipped skill can consume an additive Project extension at
|
|
62
|
+
`docs/agents/skills/<skill>.md`. A newly created extension starts with this
|
|
63
|
+
identity and schema marker (after the optional setup-workflow sentinel):
|
|
64
|
+
|
|
65
|
+
```md
|
|
66
|
+
<!-- agent-workflow-kit: project-extension/v1; skill=<skill> -->
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The marker's `<skill>` must match the filename and a canonical or locally
|
|
70
|
+
registered skill identity. Existing non-empty files without a marker remain
|
|
71
|
+
supported as legacy v0 and are never rewritten merely to add the marker.
|
|
72
|
+
Setup and update preserve every extension byte-for-byte unless a future,
|
|
73
|
+
declared schema migration explicitly includes it.
|
|
74
|
+
|
|
75
|
+
Use an extension for Project language, commands, policy, and capability data
|
|
76
|
+
that the Core skill already knows how to apply. It is additive and cannot
|
|
77
|
+
weaken Core user gates, safety, ownership, or validation. Changes to parsing,
|
|
78
|
+
migration, evaluation, or other executable Core semantics require an
|
|
79
|
+
Explicit fork with a separate identity and update line.
|
|
80
|
+
|
|
51
81
|
## Process
|
|
52
82
|
|
|
53
83
|
### 1. Explore
|
|
@@ -263,7 +293,8 @@ decisions without repository evidence and user confirmation.
|
|
|
263
293
|
> manifest. It is advisory only: it never blocks, reads the manifest once, uses
|
|
264
294
|
> no network, and silently fails open when the manifest cannot be read. Shell
|
|
265
295
|
> redirection, formatters, and IDE edits are knowingly outside its coverage; the
|
|
266
|
-
> skills remain the rule's primary carrier.
|
|
296
|
+
> skills remain the rule's primary carrier. Its Contribution Bridge follow-up
|
|
297
|
+
> calls the same read-only route resolver with `--surface=guard`.
|
|
267
298
|
|
|
268
299
|
Activate the shipped hook by reconciling this exact entry into
|
|
269
300
|
`.claude/settings.json`:
|
|
@@ -327,6 +358,26 @@ unaffected surfaces, autonomy, and advanced values. Re-read the profile before
|
|
|
327
358
|
activation and use its fingerprint plus the exclusive profile lock; a
|
|
328
359
|
concurrent user-local change blocks activation and remains byte-preserved.
|
|
329
360
|
|
|
361
|
+
### 2i. Section A10 — Optional contribution return routing
|
|
362
|
+
|
|
363
|
+
> Contribution return routing lets a repository advertise a verifiable Kit
|
|
364
|
+
> upstream without guessing who the user is. It controls offered routes, never
|
|
365
|
+
> remote authorization.
|
|
366
|
+
|
|
367
|
+
Read [contribution-routing.md](./contribution-routing.md) in full. If
|
|
368
|
+
`contributionRouting` is absent, ask whether this repository should advertise
|
|
369
|
+
an upstream contribution route. **Yes** records only the user-confirmed
|
|
370
|
+
owner/repository and local Git remote after verifying that the remote URL
|
|
371
|
+
matches. **Later / No** leaves the section absent or records `enabled: false`
|
|
372
|
+
only when the user requests a durable opt-out. Adopt an existing valid section
|
|
373
|
+
without normalization and preserve every other profile section and unknown key.
|
|
374
|
+
|
|
375
|
+
Missing, disabled, contradictory, or unverifiable configuration must keep the
|
|
376
|
+
generic preserve/Explicit-fork routes. Never infer capability from username,
|
|
377
|
+
machine, checkout path, repository name, credentials, or current GitHub login.
|
|
378
|
+
Even a valid capability authorizes local preparation only; a pull request,
|
|
379
|
+
push, publish, or merge remains a separate explicit approval.
|
|
380
|
+
|
|
330
381
|
### 3. Section B — Triage labels
|
|
331
382
|
|
|
332
383
|
> When `triage` processes an incoming issue it applies labels (or your tracker's equivalent). It needs strings you've actually configured, or it creates duplicates.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Contribution return routing
|
|
2
|
+
|
|
3
|
+
Contribution return is an optional repository capability. It controls which
|
|
4
|
+
routes agents may *offer* for an explicit Contribution Bridge; it never grants
|
|
5
|
+
permission to mutate a remote.
|
|
6
|
+
|
|
7
|
+
The consumer-owned section in `docs/agents/workflow-capabilities.json` is:
|
|
8
|
+
|
|
9
|
+
```json contribution-routing-capability
|
|
10
|
+
{
|
|
11
|
+
"contributionRouting": {
|
|
12
|
+
"schemaVersion": 1,
|
|
13
|
+
"enabled": true,
|
|
14
|
+
"upstream": {
|
|
15
|
+
"repository": "<owner>/<repository>",
|
|
16
|
+
"remote": "<local-git-remote>"
|
|
17
|
+
},
|
|
18
|
+
"workflows": {
|
|
19
|
+
"prepareLocal": true,
|
|
20
|
+
"upstreamPullRequest": {
|
|
21
|
+
"enabled": true,
|
|
22
|
+
"requiresExplicitApproval": true
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The resolver accepts the maintainer-capable route only when the configured Git
|
|
30
|
+
remote exists and its GitHub owner/repository matches `upstream.repository`.
|
|
31
|
+
It does not inspect usernames, home paths, machine names, the consumer
|
|
32
|
+
repository name, credentials, or GitHub account identity.
|
|
33
|
+
|
|
34
|
+
- Missing configuration is a generic Consumer: offer preserve or Explicit fork.
|
|
35
|
+
- `enabled: false` is an explicit opt-out with the same generic routes.
|
|
36
|
+
- Invalid, contradictory, or unverifiable configuration fails closed to those
|
|
37
|
+
generic routes and reports one bounded diagnostic.
|
|
38
|
+
- Valid configuration additionally offers local artifact preparation. It may
|
|
39
|
+
describe an upstream pull-request route only with
|
|
40
|
+
`requiresExplicitApproval: true`; this flag documents the gate and does not
|
|
41
|
+
satisfy it.
|
|
42
|
+
|
|
43
|
+
Use the same read-only resolver on every surface:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
agent-workflow-kit contribute status <path> --surface=retro
|
|
47
|
+
agent-workflow-kit contribute status <path> --surface=pre-update
|
|
48
|
+
agent-workflow-kit contribute status <path> --surface=guard
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Only `contribute prepare` writes a local bounded artifact. No contribution
|
|
52
|
+
command opens an issue or pull request, pushes, publishes, or merges.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<!-- agent-workflow-kit: project-extension/v1; skill=spec-self-critique -->
|
|
1
2
|
# Project layer — spec-self-critique
|
|
2
3
|
|
|
3
4
|
The generic `spec-self-critique` skill ships the 12-point checklist (the check *intents* + the structure). This file is the **project layer**: it enriches each point with project-specific incidents, grep patterns, conventions, and extra sub-checks. The skill reads it at runtime; with this file present it runs the full pass instead of warning that the layer is absent.
|
|
@@ -3,6 +3,14 @@ name: spec-self-critique
|
|
|
3
3
|
description: "Use AFTER writing or editing a spec (a `SPEC.md`/`PLAN.md` or any spec/design doc), BEFORE asking the user to review — runs a 12-point structural Self-Critique checklist, fixes issues inline, and emits a visible summary. Enriches each check from a project layer if one is present. Triggers right after a spec has been written. NOT for reviewing finished code/diffs (code-review) — this pass runs on the spec text itself."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill spec-self-critique --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Spec Self-Critique
|
|
7
15
|
|
|
8
16
|
A portable, structural self-review pass over a freshly written spec/plan. The **generic 12-point skeleton** below ships as-is; a **project layer** (if present) enriches each point with project-specific incidents, grep patterns, conventions, and extra sub-checks.
|
|
@@ -3,6 +3,14 @@ name: tdd
|
|
|
3
3
|
description: Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions "red-green-refactor", wants integration tests, or asks for test-first development.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill tdd --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Test-Driven Development
|
|
7
15
|
|
|
8
16
|
## Philosophy
|
|
@@ -3,6 +3,14 @@ name: to-issues
|
|
|
3
3
|
description: Break a Feature or Program plan, spec, or PRD into independently-grabbable issues on the project issue tracker. This is the single public Planning facade: explicit Feature identity uses tracer-bullet decomposition; explicit Program identity delegates to the internal graph engine.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill to-issues --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# To Issues
|
|
7
15
|
|
|
8
16
|
> **Skill identity (don't get confused):** the folder `to-issues` + invocation `/to-issues` map to Matt Pocock's upstream skill **`to-tickets`**. Upstream merged `to-issues` + the short-lived `to-plan` into `to-tickets` (v1.1.0); we deliberately keep the folder name `to-issues` (invocation stability, and issues are this workflow's vocabulary). Content remains our fork, compared against upstream `to-tickets` @ `d574778`. Provenance/rename ledger: `docs/agents/provenance.md` (§Re-Sync-Log), at the project root.
|
|
@@ -4,6 +4,14 @@ disable-model-invocation: true
|
|
|
4
4
|
description: "Turn a locked plan (PLAN.md in the worktree, conversation context, or an externally-authored spec) into a Draft-PRD issue on the project board, then run spec-self-critique. Use after a grill (grill-me / grill-with-docs / their -codex variants) when you want to publish the PRD. Three modes — create fresh, reuse an existing cluster/Wave-less issue, or auto-detect a Program-PRD from a plan's Wellenplan chapter. Does NOT decompose into slices (that is to-issues) and does NOT set type:cluster / Wave (that is to-issues promotion)."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<!-- project-extension:protocol-v1:start -->
|
|
8
|
+
## Project extension
|
|
9
|
+
|
|
10
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill to-prd --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
11
|
+
|
|
12
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
13
|
+
<!-- project-extension:protocol-v1:end -->
|
|
14
|
+
|
|
7
15
|
# to-prd — Draft PRD to the Board
|
|
8
16
|
|
|
9
17
|
> **Skill identity (don't get confused):** the folder `to-prd` + invocation `/to-prd` map to Matt Pocock's upstream skill **`to-spec`**. Upstream renamed `to-prd` → `to-spec` (v1.1.0); we deliberately keep the folder name `to-prd` (invocation stability, and PRD is this workflow's vocabulary). Content remains our fork, compared against upstream `to-spec` @ `d574778`. Provenance/rename ledger: `docs/agents/provenance.md` (§Re-Sync-Log), at the project root.
|
|
@@ -4,6 +4,14 @@ disable-model-invocation: true
|
|
|
4
4
|
description: "Internal Program graph engine behind the public to-issues Planning facade. Turns an explicitly identified Program-PRD into execute-ready wave anchors and slice leaves after one complete chat preview. Kept as a disabled compatibility entrypoint for existing explicit invocations; normal routing always selects to-issues."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<!-- project-extension:protocol-v1:start -->
|
|
8
|
+
## Project extension
|
|
9
|
+
|
|
10
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill to-waves --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
11
|
+
|
|
12
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
13
|
+
<!-- project-extension:protocol-v1:end -->
|
|
14
|
+
|
|
7
15
|
# to-waves — Internal Program graph engine
|
|
8
16
|
|
|
9
17
|
This skill is an **Internal Program graph engine**, selected by `to-issues` only
|
|
@@ -4,6 +4,14 @@ disable-model-invocation: true
|
|
|
4
4
|
description: Triage issues through the project board workflow. Use when user wants to triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<!-- project-extension:protocol-v1:start -->
|
|
8
|
+
## Project extension
|
|
9
|
+
|
|
10
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill triage --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
11
|
+
|
|
12
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
13
|
+
<!-- project-extension:protocol-v1:end -->
|
|
14
|
+
|
|
7
15
|
# Triage
|
|
8
16
|
|
|
9
17
|
Move issues on the project issue tracker through the board-driven workflow.
|
|
@@ -3,6 +3,14 @@ name: verify-spike
|
|
|
3
3
|
description: Answer a single yes/no factual question about reality with a minimal throwaway, read-only harness and output-proof. Use when a plan, ADR, or implementation hinges on an empirically-checkable fact — does a library API exist / behave this way on this version, does the runtime / DB / platform actually have this capability, does an external assumption hold — and you need a proven verdict before locking the decision. NOT for design exploration (prototype), bug root-cause (diagnose), or building a feature (tdd).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill verify-spike --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Verify Spike
|
|
7
15
|
|
|
8
16
|
A verify-spike is **throwaway, read-only code that proves a yes/no fact about reality.** The question is binary; the spike makes the answer empirical instead of assumed.
|
|
@@ -4,6 +4,14 @@ description: Plan a huge chunk of work — more than one agent session can hold
|
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<!-- project-extension:protocol-v1:start -->
|
|
8
|
+
## Project extension
|
|
9
|
+
|
|
10
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill wayfinder --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
11
|
+
|
|
12
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
13
|
+
<!-- project-extension:protocol-v1:end -->
|
|
14
|
+
|
|
7
15
|
A loose idea has arrived — too big for one agent session, and wrapped in fog: the way from here to the **destination** isn't visible yet. Wayfinding is about finding that way, not charging at the destination. This skill charts the way as a **shared map** on the repo's issue tracker, then works its tickets one at a time until the route is clear.
|
|
8
16
|
|
|
9
17
|
The destination varies per effort, and naming it is the first act of charting — it shapes every ticket. It might be a spec to hand off and iterate on, a decision to lock before planning starts, or a change made in place like a data-structure migration. The map is domain-agnostic — engineering work, course content, whatever fits the shape.
|
|
@@ -14,6 +14,14 @@ description: >-
|
|
|
14
14
|
push, a conflicting PR, or red (FAILURE) checks.
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
+
<!-- project-extension:protocol-v1:start -->
|
|
18
|
+
## Project extension
|
|
19
|
+
|
|
20
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill wrapup --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
21
|
+
|
|
22
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
23
|
+
<!-- project-extension:protocol-v1:end -->
|
|
24
|
+
|
|
17
25
|
# wrapup — land PR & tear down worktree
|
|
18
26
|
|
|
19
27
|
Trigger: user types `/wrapup` (optionally with a PR number). **Manual only** — `disable-model-invocation: true`, no hook, no auto-invoke.
|
|
@@ -3,6 +3,14 @@ name: write-a-skill
|
|
|
3
3
|
description: Create, write, edit, and improve agent skills — the vocabulary and principles that make a skill predictable (invocation, information hierarchy, progressive disclosure, leading words, pruning, failure modes). Use when the user wants to create, write, edit, refactor, or improve a skill.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
<!-- project-extension:protocol-v1:start -->
|
|
7
|
+
## Project extension
|
|
8
|
+
|
|
9
|
+
Before applying this Core skill, run `node scripts/project-skill-extension.mjs inspect --skill write-a-skill --json` from the Project root. When it returns `active`, read the returned `path` and apply it as additive Project instructions. When it returns `inactive`, continue with Core only. When it returns `blocked`, stop and report its diagnostic.
|
|
10
|
+
|
|
11
|
+
Project extensions may specialize Project details, but cannot weaken Core user gates, safety, ownership, or validation. A contradiction blocks and requires an Explicit fork.
|
|
12
|
+
<!-- project-extension:protocol-v1:end -->
|
|
13
|
+
|
|
6
14
|
# Writing Skills
|
|
7
15
|
|
|
8
16
|
> **Skill identity (don't get confused):** the folder `write-a-skill` + invocation `/write-a-skill` map to Matt Pocock's upstream skill **`writing-great-skills`**. Upstream replaced the old process-/template-based `write-a-skill` with this vocabulary/principles reference and switched it to **user-invoked** (`disable-model-invocation: true`). We keep the folder name `write-a-skill` (invocation stability) **and** deliberately keep it **model-invoked** (auto-fires on "create/write a skill" + `/write-a-skill`, as referenced in CLAUDE.md `## Workflow`). Content = upstream `writing-great-skills` @ `7a83a3a`, locally adapted. Provenance/rename ledger: `docs/agents/provenance.md` (§Re-Sync-Log), at the project root.
|