workflow-toolkit 1.0.1
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/ponytail/SKILL.md +111 -0
- package/.agents/skills/ponytail-audit/SKILL.md +37 -0
- package/.agents/skills/ponytail-debt/SKILL.md +41 -0
- package/.agents/skills/ponytail-gain/SKILL.md +47 -0
- package/.agents/skills/ponytail-help/SKILL.md +70 -0
- package/.agents/skills/ponytail-review/SKILL.md +52 -0
- package/.agents/skills/prompt-review/SKILL.md +60 -0
- package/.agents/skills/wtk/SKILL.md +64 -0
- package/.agents/skills/wtk/references/artifacts.md +82 -0
- package/.agents/skills/wtk/references/evidence.md +68 -0
- package/.agents/skills/wtk/references/git.md +75 -0
- package/.agents/skills/wtk/references/test-contract.md +76 -0
- package/.agents/skills/wtk/references/validation.md +127 -0
- package/.agents/skills/wtk-config/SKILL.md +102 -0
- package/.agents/skills/wtk-config/assets/agents/claude/deep-reviewer.md +40 -0
- package/.agents/skills/wtk-config/assets/agents/claude/designer.md +57 -0
- package/.agents/skills/wtk-config/assets/agents/claude/explorer.md +41 -0
- package/.agents/skills/wtk-config/assets/agents/claude/implementer.md +57 -0
- package/.agents/skills/wtk-config/assets/agents/claude/planner.md +68 -0
- package/.agents/skills/wtk-config/assets/agents/claude/verifier.md +80 -0
- package/.agents/skills/wtk-config/assets/agents/codex/deep-reviewer.toml +41 -0
- package/.agents/skills/wtk-config/assets/agents/codex/designer.toml +55 -0
- package/.agents/skills/wtk-config/assets/agents/codex/explorer.toml +35 -0
- package/.agents/skills/wtk-config/assets/agents/codex/implementer.toml +52 -0
- package/.agents/skills/wtk-config/assets/agents/codex/planner.toml +66 -0
- package/.agents/skills/wtk-config/assets/agents/codex/verifier.toml +78 -0
- package/.agents/skills/wtk-config/assets/agents/cursor/deep-reviewer.md +38 -0
- package/.agents/skills/wtk-config/assets/agents/cursor/designer.md +55 -0
- package/.agents/skills/wtk-config/assets/agents/cursor/explorer.md +39 -0
- package/.agents/skills/wtk-config/assets/agents/cursor/implementer.md +55 -0
- package/.agents/skills/wtk-config/assets/agents/cursor/planner.md +66 -0
- package/.agents/skills/wtk-config/assets/agents/cursor/verifier.md +79 -0
- package/.agents/skills/wtk-config/scripts/ad-index.py +123 -0
- package/.agents/skills/wtk-config/scripts/repository_intelligence.py +671 -0
- package/.agents/skills/wtk-config/scripts/workflow_config.py +972 -0
- package/.agents/skills/wtk-deep-review/SKILL.md +164 -0
- package/.agents/skills/wtk-deep-review/assets/PROMPT.md +56 -0
- package/.agents/skills/wtk-deep-review/assets/REVIEW_UI.html +1340 -0
- package/.agents/skills/wtk-deep-review/assets/findings.schema.json +113 -0
- package/.agents/skills/wtk-deep-review/references/context-pack.md +88 -0
- package/.agents/skills/wtk-deep-review/references/orchestration.md +164 -0
- package/.agents/skills/wtk-deep-review/references/output-contracts.md +149 -0
- package/.agents/skills/wtk-deep-review/references/publish-github.md +83 -0
- package/.agents/skills/wtk-deep-review/references/state-and-learnings.md +64 -0
- package/.agents/skills/wtk-deep-review/references/subagent-runtimes.md +33 -0
- package/.agents/skills/wtk-deep-review/references/taxonomy.md +70 -0
- package/.agents/skills/wtk-deep-review/scripts/_common.py +371 -0
- package/.agents/skills/wtk-deep-review/scripts/build_jobs.py +561 -0
- package/.agents/skills/wtk-deep-review/scripts/build_knowledge.py +349 -0
- package/.agents/skills/wtk-deep-review/scripts/build_manifest.py +479 -0
- package/.agents/skills/wtk-deep-review/scripts/graft_context.py +160 -0
- package/.agents/skills/wtk-deep-review/scripts/graphify_context.py +75 -0
- package/.agents/skills/wtk-deep-review/scripts/merge_findings.py +313 -0
- package/.agents/skills/wtk-deep-review/scripts/render_html.py +240 -0
- package/.agents/skills/wtk-deep-review/scripts/render_review.py +282 -0
- package/.agents/skills/wtk-deep-review/scripts/run_jobs.py +436 -0
- package/.agents/skills/wtk-deep-review/scripts/token_metrics.py +369 -0
- package/.agents/skills/wtk-discover/SKILL.md +270 -0
- package/.agents/skills/wtk-discover/references/document-format.md +149 -0
- package/.agents/skills/wtk-implement/SKILL.md +95 -0
- package/.agents/skills/wtk-implement/references/checklist-format.md +116 -0
- package/.agents/skills/wtk-implement/references/screens.md +129 -0
- package/.agents/skills/wtk-implement/references/test-policy.md +152 -0
- package/.agents/skills/wtk-implement/references/verify.md +297 -0
- package/.agents/skills/wtk-knowledge-check/SKILL.md +16 -0
- package/.agents/skills/wtk-knowledge-check/scripts/check.ts +502 -0
- package/.agents/skills/wtk-knowledge-check/scripts/cli.ts +32 -0
- package/.agents/skills/wtk-knowledge-check/scripts/frontmatter.ts +44 -0
- package/.agents/skills/wtk-lean/.skill-meta.json +6 -0
- package/.agents/skills/wtk-lean/NOTICE.md +18 -0
- package/.agents/skills/wtk-lean/SKILL.md +137 -0
- package/.agents/skills/wtk-lean/references/build.md +168 -0
- package/.agents/skills/wtk-lean/references/checks.md +253 -0
- package/.agents/skills/wtk-lean/references/memory.md +156 -0
- package/.agents/skills/wtk-lean/references/plan.md +514 -0
- package/.agents/skills/wtk-lean/references/verify.md +336 -0
- package/.agents/skills/wtk-lean/scripts/check_commit.py +121 -0
- package/.agents/skills/wtk-lean/scripts/fixtures/checks.md +98 -0
- package/.agents/skills/wtk-lean/scripts/fixtures/plan.md +119 -0
- package/.agents/skills/wtk-lean/scripts/fixtures/verification.md +41 -0
- package/.agents/skills/wtk-lean/scripts/lessons.py +412 -0
- package/.agents/skills/wtk-lean/scripts/selftest.py +401 -0
- package/.agents/skills/wtk-lean/scripts/validate_checks.py +417 -0
- package/.agents/skills/wtk-lean/scripts/validate_plan.py +580 -0
- package/.agents/skills/wtk-lean/scripts/validate_verification.py +357 -0
- package/.agents/skills/wtk-plan/SKILL.md +102 -0
- package/.agents/skills/wtk-plan/references/document-format.md +222 -0
- package/.agents/skills/wtk-qa/SKILL.md +14 -0
- package/.agents/skills/wtk-qa-execute/SKILL.md +115 -0
- package/.agents/skills/wtk-qa-execute/references/fix-loop.md +23 -0
- package/.agents/skills/wtk-qa-execute/references/session-protocol.md +25 -0
- package/.agents/skills/wtk-qa-plan/SKILL.md +111 -0
- package/.agents/skills/wtk-qa-plan/references/profile.md +35 -0
- package/.agents/skills/wtk-ship/SKILL.md +49 -0
- package/.agents/skills/wtk-ship/remediation.py +170 -0
- package/.agents/skills/wtk-ship/scripts/close_feature.py +83 -0
- package/.agents/skills/wtk-ship/scripts/review_convergence.py +373 -0
- package/.wtk.toml.example +93 -0
- package/AGENTS.md +129 -0
- package/NOTICE.md +12 -0
- package/README.md +440 -0
- package/bin/wtk.js +25 -0
- package/docs/toolkit/README.md +56 -0
- package/docs/toolkit/decisions.md +61 -0
- package/docs/toolkit/guidelines/CONTEXT-BUDGET.md +64 -0
- package/docs/toolkit/guidelines/DX.md +67 -0
- package/docs/toolkit/guidelines/FRONTEND.md +73 -0
- package/docs/toolkit/guidelines/KNOWLEDGE-WIKI.md +128 -0
- package/docs/toolkit/guidelines/MODELING.md +134 -0
- package/docs/toolkit/guidelines/QA-EXECUTION.md +46 -0
- package/docs/toolkit/guidelines/QA-SCENARIOS.md +165 -0
- package/docs/toolkit/guidelines/REVIEW-ROUNDS.md +160 -0
- package/docs/toolkit/guidelines/SECURITY.md +160 -0
- package/docs/toolkit/guidelines/UI-UX.md +117 -0
- package/docs/toolkit/guidelines/WORKFLOW-MEMORY.md +73 -0
- package/docs/toolkit/guidelines.md +50 -0
- package/docs/toolkit/loop.md +77 -0
- package/docs/toolkit/purpose.md +51 -0
- package/docs/toolkit/repository-intelligence.md +53 -0
- package/docs/toolkit/reviews.md +77 -0
- package/knowledge/AGENTS.md +316 -0
- package/knowledge/raw/README.md +17 -0
- package/package.json +74 -0
- package/scripts/install_security_skills.py +816 -0
- package/scripts/installer/engine.js +254 -0
- package/scripts/installer/knowledge.js +28 -0
- package/scripts/installer/packets.js +77 -0
- package/scripts/installer/terminal.js +98 -0
- package/scripts/installer/transaction.js +75 -0
- package/skills-lock.json +92 -0
- package/templates/adoption/agents/core.md +23 -0
- package/templates/adoption/agents/quality.md +3 -0
- package/templates/adoption/knowledge/wiki/architecture/index.md +3 -0
- package/templates/adoption/knowledge/wiki/decisions/index.md +3 -0
- package/templates/adoption/knowledge/wiki/design/index.md +3 -0
- package/templates/adoption/knowledge/wiki/domain/index.md +3 -0
- package/templates/adoption/knowledge/wiki/index.md +3 -0
- package/templates/adoption/knowledge/wiki/log.md +3 -0
- package/templates/adoption/knowledge/wiki/open-questions/index.md +3 -0
- package/templates/adoption/knowledge/wiki/product/index.md +3 -0
- package/templates/adoption/knowledge/wiki/research/index.md +3 -0
- package/templates/adoption/product/AGENT-CONTEXT.md +25 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
version = 3
|
|
2
|
+
|
|
3
|
+
[parallelization]
|
|
4
|
+
mode = "disabled" # the Lean builder is sequential; resource serialization remains opt-in
|
|
5
|
+
max_workers = "auto" # auto starts at 2 and scales to 4 when healthy
|
|
6
|
+
# Optional repository-relative executable for resource-bearing lanes.
|
|
7
|
+
# resource_provider = "tools/workflow_resources"
|
|
8
|
+
|
|
9
|
+
[deep_review]
|
|
10
|
+
cadence = "skip" # deep-review is on demand; choose slice, feature, or grouped.N to schedule it
|
|
11
|
+
|
|
12
|
+
# Post-cap remediation halts after this many consecutive non-progress attempts.
|
|
13
|
+
# Default 3. 0 means unbounded: never halt for a stall.
|
|
14
|
+
[remediation]
|
|
15
|
+
stall_attempts = 3
|
|
16
|
+
|
|
17
|
+
[profiles.mixed]
|
|
18
|
+
implementer = "claude"
|
|
19
|
+
verifier = "codex"
|
|
20
|
+
explorer = "cursor"
|
|
21
|
+
deep_reviewer = "codex"
|
|
22
|
+
|
|
23
|
+
[models.claude.planner]
|
|
24
|
+
model = "opus"
|
|
25
|
+
effort = "high"
|
|
26
|
+
|
|
27
|
+
[models.claude.implementer]
|
|
28
|
+
model = "opus"
|
|
29
|
+
effort = "medium"
|
|
30
|
+
|
|
31
|
+
[models.claude.verifier]
|
|
32
|
+
model = "opus"
|
|
33
|
+
effort = "medium"
|
|
34
|
+
|
|
35
|
+
[models.claude.explorer]
|
|
36
|
+
model = "sonnet"
|
|
37
|
+
effort = "medium"
|
|
38
|
+
|
|
39
|
+
[models.claude.deep_reviewer]
|
|
40
|
+
model = "sonnet"
|
|
41
|
+
effort = "high"
|
|
42
|
+
|
|
43
|
+
[models.claude.designer]
|
|
44
|
+
model = "inherit"
|
|
45
|
+
effort = "high"
|
|
46
|
+
|
|
47
|
+
[models.codex.planner]
|
|
48
|
+
model = "gpt-5.6-sol"
|
|
49
|
+
effort = "high"
|
|
50
|
+
|
|
51
|
+
[models.codex.implementer]
|
|
52
|
+
model = "gpt-5.6-luna"
|
|
53
|
+
effort = "max"
|
|
54
|
+
|
|
55
|
+
[models.codex.verifier]
|
|
56
|
+
model = "gpt-5.6-sol"
|
|
57
|
+
effort = "high"
|
|
58
|
+
|
|
59
|
+
[models.codex.explorer]
|
|
60
|
+
model = "gpt-5.6-luna"
|
|
61
|
+
effort = "medium"
|
|
62
|
+
|
|
63
|
+
[models.codex.deep_reviewer]
|
|
64
|
+
model = "gpt-5.6-luna"
|
|
65
|
+
effort = "high"
|
|
66
|
+
|
|
67
|
+
[models.codex.designer]
|
|
68
|
+
model = "gpt-6-astra"
|
|
69
|
+
effort = "high"
|
|
70
|
+
|
|
71
|
+
[models.cursor.planner]
|
|
72
|
+
model = "cursor-grok-4.6"
|
|
73
|
+
effort = "high"
|
|
74
|
+
|
|
75
|
+
[models.cursor.implementer]
|
|
76
|
+
model = "gpt-5.6-luna"
|
|
77
|
+
effort = "high"
|
|
78
|
+
|
|
79
|
+
[models.cursor.verifier]
|
|
80
|
+
model = "cursor-grok-4.6"
|
|
81
|
+
effort = "medium"
|
|
82
|
+
|
|
83
|
+
[models.cursor.explorer]
|
|
84
|
+
model = "gpt-5.6-luna"
|
|
85
|
+
effort = "medium"
|
|
86
|
+
|
|
87
|
+
[models.cursor.deep_reviewer]
|
|
88
|
+
model = "gpt-5.6-luna"
|
|
89
|
+
effort = "high"
|
|
90
|
+
|
|
91
|
+
[models.cursor.designer]
|
|
92
|
+
model = "claude-fable-5-1-thinking-high"
|
|
93
|
+
effort = "high"
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Agent operating system
|
|
2
|
+
|
|
3
|
+
This file is the delivery workflow. It is not a product description.
|
|
4
|
+
|
|
5
|
+
## What this project is
|
|
6
|
+
|
|
7
|
+
Read `docs/product/AGENT-CONTEXT.md` before product-specific work. It holds identity, critical
|
|
8
|
+
constraints, and role/task routes; load only its cited references. Surface missing required context
|
|
9
|
+
as a named gap; do not recurse through product/history directories.
|
|
10
|
+
|
|
11
|
+
## This chat's role
|
|
12
|
+
|
|
13
|
+
**Planner for feature work**, unless spawned as implementer, explorer, verifier, or designer.
|
|
14
|
+
|
|
15
|
+
For features, Specify + Design + Tasks here. After approval, dispatch **implementer** and stay. Verifier is a
|
|
16
|
+
**new** session — never the implementer's chat, never this one if it wrote the code.
|
|
17
|
+
|
|
18
|
+
For bounded maintenance under `.agents/skills/wtk/references/validation.md`, the active agent edits and validates directly; delegation
|
|
19
|
+
is optional when it adds useful independent work, not a required handoff.
|
|
20
|
+
Spawn the named agent without model overrides; use `explorer` for feature exploration and traces.
|
|
21
|
+
Local `.wtk.toml` owns provider settings; `wtk-config` owns packet generation and frozen feature routes.
|
|
22
|
+
Provider definitions are real files, not symlinks.
|
|
23
|
+
|
|
24
|
+
## Critical rules
|
|
25
|
+
|
|
26
|
+
- Write all project artifacts in English: code, identifiers, comments, filenames, documentation,
|
|
27
|
+
specs, commit messages, and PR titles/descriptions. Conversation may follow the user's language;
|
|
28
|
+
non-English messages do not change the artifact language.
|
|
29
|
+
- **Do not preserve backward compatibility.** Remove obsolete paths instead of adding compatibility
|
|
30
|
+
layers, fallbacks, or migrations. A rename updates code, schema, API, tests and docs in one change.
|
|
31
|
+
- **Never weaken, skip or delete a test to make a gate pass.**
|
|
32
|
+
- Derive tests from acceptance criteria or an identified invariant, not implementation details or a
|
|
33
|
+
coverage target. Extend the canonical suite at the owning layer.
|
|
34
|
+
- **Remote delivery follows `wtk-ship`.** Invoking it, or a human go-ahead on proven-ready work,
|
|
35
|
+
authorizes push, one pull request, and merge after readiness is rechecked; never ask between those
|
|
36
|
+
steps; stop at the pull request only when told so up front. Readiness is not authorization for
|
|
37
|
+
deploy/release, production mutations, force-push, direct push to `main`, or unrelated remote actions.
|
|
38
|
+
- Before editing agent instructions or guidelines, read `docs/toolkit/guidelines/CONTEXT-BUDGET.md`.
|
|
39
|
+
Keep shared rules in one place and load conditional guidance only for the relevant task.
|
|
40
|
+
- Offer to record durable observations or decisions missing from the documents: name the destination
|
|
41
|
+
and ask. Writing `knowledge/` requires a yes and follows `docs/toolkit/guidelines/KNOWLEDGE-WIKI.md`.
|
|
42
|
+
|
|
43
|
+
## How work happens
|
|
44
|
+
|
|
45
|
+
Use `wtk` as the entrypoint; it selects feature work or bounded maintenance from the request and
|
|
46
|
+
existing artifacts. At the start of workflow work, activate `ponytail`
|
|
47
|
+
at `full` and keep it active for the entire session: Specify, Design, Tasks, Execute, every
|
|
48
|
+
subagent prompt, fix, and review, until the human explicitly says `stop ponytail` or `normal mode`.
|
|
49
|
+
|
|
50
|
+
Continue authorized work through implementation, applicable validation and local commit. Resolve
|
|
51
|
+
routine choices and fix failures caused by the change without asking again; ask only for missing
|
|
52
|
+
decisions or new authority. Planning-only requests still end at the reviewable plan.
|
|
53
|
+
|
|
54
|
+
After a coherent edit batch, use the existing formatter on changed files, when configured, then the
|
|
55
|
+
applicable validation. Keep successful formatter output silent. `.agents/skills/wtk/references/validation.md`
|
|
56
|
+
owns check selection and evidence reuse; do not install a formatter solely for an edit.
|
|
57
|
+
When selecting or repeating gates, apply incremental validation by impact from that reference.
|
|
58
|
+
|
|
59
|
+
**Public hierarchy is `Feature -> Slice -> Check`.** A slice is observable end-to-end behaviour;
|
|
60
|
+
a check is a proof-backed obligation. `plan.md` freezes decisions and `checks.md` freezes obligations.
|
|
61
|
+
One builder handles whole slices sequentially; the coordinator owns handoff, verification, integration
|
|
62
|
+
and cleanup. After Build, one fresh Verifier covers the complete feature range. `wtk-lean` owns the
|
|
63
|
+
phase procedures; `wtk-config` owns review cadence. Every counted claim cites its producing command.
|
|
64
|
+
|
|
65
|
+
Delivery is human-scheduled. Git and the artifacts named below own durable state.
|
|
66
|
+
|
|
67
|
+
## wtk-lean
|
|
68
|
+
|
|
69
|
+
profile: standard
|
|
70
|
+
budget: 150k
|
|
71
|
+
|
|
72
|
+
## Load (the heading, not the whole file)
|
|
73
|
+
|
|
74
|
+
| When | Open |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| Writing, planning, or breaking a spec into tasks | `.agents/skills/wtk/references/test-contract.md` |
|
|
77
|
+
| Starting a task in a multi-task feature | `docs/toolkit/guidelines/WORKFLOW-MEMORY.md` |
|
|
78
|
+
| Specify touches a security surface | `docs/toolkit/guidelines/SECURITY.md` — `## 2. At Specify — declare the surfaces` |
|
|
79
|
+
| Writing tests for an abuse case | `docs/toolkit/guidelines/SECURITY.md` — `## 3. At the test contract — abuse cases get IDs` |
|
|
80
|
+
| Review residual | `docs/toolkit/guidelines/SECURITY.md` — `## 5. At review — the residual only` |
|
|
81
|
+
| Adds or changes a screen | `docs/toolkit/guidelines/UI-UX.md` |
|
|
82
|
+
| Front-end code or a mockup | `docs/toolkit/guidelines/FRONTEND.md` — only the heading in dispute |
|
|
83
|
+
| Module boundary, port, or domain type | `docs/toolkit/guidelines/MODELING.md` |
|
|
84
|
+
| Public surface — route, CLI verb, config key | `docs/toolkit/guidelines/DX.md` |
|
|
85
|
+
| Diff changes user-visible behaviour | `docs/toolkit/guidelines/QA-SCENARIOS.md` |
|
|
86
|
+
| QA pass at the end of a feature | `docs/toolkit/guidelines/QA-EXECUTION.md` |
|
|
87
|
+
| Reviewing, or acting on findings | `docs/toolkit/guidelines/REVIEW-ROUNDS.md` |
|
|
88
|
+
| Resolving feature workflow | `.agents/skills/wtk-config/SKILL.md` |
|
|
89
|
+
| About to claim done, or to commit | `.agents/skills/wtk/references/evidence.md` |
|
|
90
|
+
| Choosing which gate to run | `.agents/skills/wtk/references/validation.md` |
|
|
91
|
+
| Branch or worktree | `.agents/skills/wtk/references/git.md` |
|
|
92
|
+
| Keep or discard an artifact | `.agents/skills/wtk/references/artifacts.md` |
|
|
93
|
+
| A rule stated in more than one document | `knowledge/wiki/index.md`, then the concept |
|
|
94
|
+
| Recording or verifying the bundle | `docs/toolkit/guidelines/KNOWLEDGE-WIKI.md` |
|
|
95
|
+
| Editing this file or a guideline | `docs/toolkit/guidelines/CONTEXT-BUDGET.md` |
|
|
96
|
+
| Why a past choice (`AD-NNN`) | `.specs/AD-INDEX.md`; body `rg -A 20 '^### AD-NNN' .specs/STATE.md` |
|
|
97
|
+
| Resume | `rg -A 20 '^## Handoff' .specs/STATE.md`, then reconcile Handoff + git and consult the current local `tasks.md` state when present, or the inline execution plan when Tasks was skipped |
|
|
98
|
+
|
|
99
|
+
Docs and formatting do not trigger `SECURITY.md`.
|
|
100
|
+
|
|
101
|
+
`AD-NNN` (three digits, `.specs/STATE.md`) are project decisions. Architecture invariants live in the
|
|
102
|
+
consuming project's architecture docs. Cite the file with the label. Do not invent invariant ids in
|
|
103
|
+
this pack.
|
|
104
|
+
|
|
105
|
+
Recording an `AD-NNN` also runs `python3 .agents/skills/wtk-config/scripts/ad-index.py` in that commit. Lean validators
|
|
106
|
+
live in `.agents/skills/wtk-lean/scripts/`; the consuming project owns `make check`.
|
|
107
|
+
|
|
108
|
+
## Where the truth lives
|
|
109
|
+
|
|
110
|
+
| You need | Read |
|
|
111
|
+
| --- | --- |
|
|
112
|
+
| What to build and why | `docs/product/` |
|
|
113
|
+
| How the system is shaped | `docs/architecture/` |
|
|
114
|
+
| How it looks and behaves | `docs/design/` |
|
|
115
|
+
| Why a past choice was made | `.specs/AD-INDEX.md` |
|
|
116
|
+
| Versioned feature requirements and proof state | `.specs/features/<feature>/plan.md`, `checks.md`, `verification.md` |
|
|
117
|
+
| What the product currently promises users | `docs/qa/scenarios/` |
|
|
118
|
+
|
|
119
|
+
## Isolated checkouts
|
|
120
|
+
|
|
121
|
+
If the consuming project isolates checkouts (worktrees, sibling clones), **each checkout owns its
|
|
122
|
+
runtime**. Never set `reuseExistingServer: true` across siblings — that lets a gate in one checkout
|
|
123
|
+
silently test another's application.
|
|
124
|
+
|
|
125
|
+
## Commit style
|
|
126
|
+
|
|
127
|
+
Conventional Commits: `<type>(<scope>): <description>`, types `feat|fix|refactor|perf|docs|test|build|ci`.
|
|
128
|
+
One commit per task. One commit per review-remediation batch. If a pre-commit hook fails, fix the
|
|
129
|
+
issue and make a new commit — never `--amend`.
|
package/NOTICE.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Workflow Toolkit notices
|
|
2
|
+
|
|
3
|
+
The executable, installer, and bundled support scripts are project-owned MIT-licensed source.
|
|
4
|
+
The workflow skill content is CC BY 4.0 unless its frontmatter states otherwise.
|
|
5
|
+
|
|
6
|
+
The integrated Lean skill is an adaptation of Tech Leads Club's `tlc-spec-lean` at commit
|
|
7
|
+
`0ab82f644cd9caf94c65347a50ad934800b0cbc4`. Its source URL, content hash, and `CC-BY-4.0`
|
|
8
|
+
license are pinned in [`skills-lock.json`](skills-lock.json) and its attribution is retained in
|
|
9
|
+
[`.agents/skills/wtk-lean/NOTICE.md`](.agents/skills/wtk-lean/NOTICE.md).
|
|
10
|
+
|
|
11
|
+
Project-owned skill adaptations retain their per-file `CC-BY-4.0` frontmatter. External skill
|
|
12
|
+
sources and reviewed revisions remain listed in [`skills-lock.json`](skills-lock.json).
|
package/README.md
ADDED
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
# Workflow Toolkit
|
|
2
|
+
|
|
3
|
+
The npm package is `workflow-toolkit`; the executable is `wtk`.
|
|
4
|
+
|
|
5
|
+
An operating system for agents. It ships the workflow-owned [`wtk`](.agents/skills/wtk/SKILL.md)
|
|
6
|
+
router and its Lean skills (`wtk-lean`, `wtk-discover`, `wtk-plan`, `wtk-implement`)
|
|
7
|
+
with a capped delivery loop, countable tests and security surfaces, and a knowledge bundle. It is
|
|
8
|
+
not a product template and not a stack starter.
|
|
9
|
+
|
|
10
|
+
The design problem is the usual one: **ship, without lying about quality**. Unbounded review feels
|
|
11
|
+
responsible and never finishes. A green suite with no spec contract ships bugs. This pack picks a
|
|
12
|
+
middle: small vertical slices, cheap gates while building, a hard cap on review rounds, and a
|
|
13
|
+
human-owned merge.
|
|
14
|
+
|
|
15
|
+
## Quick start
|
|
16
|
+
|
|
17
|
+
From the repository you want to install into, run the guided Node.js installer:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx workflow-toolkit install
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The command targets the current directory, requires Node.js 18 or newer, and walks through module
|
|
24
|
+
selection, state assessment, a complete preview, conflict decisions, final confirmation, and a
|
|
25
|
+
result summary. It never requires Python. Existing files that are replaced or removed are copied
|
|
26
|
+
byte-for-byte with their modes into `.my-workflow/backups/<UTC timestamp>/`; the adoption manifest
|
|
27
|
+
is published last. Cancelling at any prompt writes nothing.
|
|
28
|
+
|
|
29
|
+
Choose `core`, `quality`, or `extras`; selecting any non-core module also selects `core`.
|
|
30
|
+
Every module is shown as `not installed`, `up to date`, `outdated`, `modified`, or `conflict`. A
|
|
31
|
+
conflict must be explicitly backed up and replaced, excluded, or cancelled. Successful replacements
|
|
32
|
+
that affect consumer guidance include a `knowledge-transfer.md` checklist with a pending human
|
|
33
|
+
transfer; consumer knowledge is never merged automatically.
|
|
34
|
+
|
|
35
|
+
The terminal wizard supports 80×24 and 120×40 layouts and `NO_COLOR=1`. The package's complete
|
|
36
|
+
current workflow is documented in [docs/toolkit/](docs/toolkit/).
|
|
37
|
+
|
|
38
|
+
Start here: **[docs/toolkit/](docs/toolkit/)** — an index of every stage, guideline, and choice.
|
|
39
|
+
|
|
40
|
+
## Purpose
|
|
41
|
+
|
|
42
|
+
| Delivery | Reliability |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| Auto-sized planning (one line needs no spec) | Tests assert spec outcomes, not the implementation |
|
|
45
|
+
| Proportional scoped gate; full gate only when selected | Never weaken a test to go green |
|
|
46
|
+
| Nitpicks become filed issues, not extra rounds | Critical and Major still hold the ship |
|
|
47
|
+
| `ponytail` at `full` — shortest code that works | Security surfaces declared and given `SEC-` ids |
|
|
48
|
+
| `wtk-ship` scopes remote delivery | Its invocation authorizes the feature-branch push, one pull request, and merge after readiness is rechecked; readiness is evidence, not authorization for deploy/release, production mutations, force-push, direct `main` push, or unrelated remote actions |
|
|
49
|
+
|
|
50
|
+
The loop, the caps, and the guidelines are the mechanism. The tour explains **why** each exists.
|
|
51
|
+
`AGENTS.md` is what agents run.
|
|
52
|
+
|
|
53
|
+
## Current workflow
|
|
54
|
+
|
|
55
|
+
Use plain intent in the request:
|
|
56
|
+
|
|
57
|
+
- “Visual polish / UI-only correction; I am doing manual QA” keeps adjustments to colors, spacing,
|
|
58
|
+
typography, alignment, borders, and layout on the narrow inspect → implement → targeted check →
|
|
59
|
+
commit path when behavior stays unchanged.
|
|
60
|
+
- “Feature” starts the smallest spec and slice route that fits the behavior. “Cross-feature” sets a
|
|
61
|
+
broader mapping floor. A neutral Linear `issue` is classified from its concrete outcome, not its
|
|
62
|
+
label.
|
|
63
|
+
- Documentation maintenance, agent-instruction changes, and mixed executable changes automatically
|
|
64
|
+
use proportional checks from `.agents/skills/wtk/references/validation.md`. Named risk or changed public behavior selects stronger
|
|
65
|
+
evidence. Confirmed wtk-deep-review defects are fixed inside their run; cosmetics become follow-up work.
|
|
66
|
+
|
|
67
|
+
The feature path is Plan → Checks → Build → Verify. Builders use whole observable slices and
|
|
68
|
+
coherent commits, then one fresh independent Technical Verifier proves the complete feature range.
|
|
69
|
+
Deep Review is optional and defaults to `skip`; QA runs when the changed surface requires a user-visible
|
|
70
|
+
walk; the full gate remains selected by changed behavior and concrete risk.
|
|
71
|
+
|
|
72
|
+
For UI work, Designer starts with constraints, reads selected references, and inspects existing
|
|
73
|
+
components read-only. A design tool or isolated prototype supports exploration when useful. Three
|
|
74
|
+
alternatives apply when a new screen or meaningful redesign leaves an actual design choice open;
|
|
75
|
+
existing patterns handle bounded compositions. One exploration and one refinement is the default.
|
|
76
|
+
Human visual acceptance is recorded only after the human confirms it.
|
|
77
|
+
|
|
78
|
+
The shared workflow stays in `AGENTS.md`. Keep the product index short and point to existing
|
|
79
|
+
documents, for example:
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
## Critical constraints
|
|
83
|
+
- [Only the project constraints every task must see.]
|
|
84
|
+
|
|
85
|
+
## Role/task routes
|
|
86
|
+
| Role or task | Read only |
|
|
87
|
+
| --- | --- |
|
|
88
|
+
| Visual polish | docs/design/SYSTEM.md#tokens-and-accessibility |
|
|
89
|
+
| Customer-facing copy | docs/brand/VOICE.md |
|
|
90
|
+
| Feature planning | docs/product/OVERVIEW.md and affected journey references |
|
|
91
|
+
| Implementation | Assigned spec/task and the relevant architecture sections |
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
These paths are examples: replace them with real files and headings in your project. A visual-polish
|
|
95
|
+
task does not load the voice guide or all product journeys merely because those documents exist.
|
|
96
|
+
Project-specific operational rules, such as Linear routing and environment setup, can live in
|
|
97
|
+
separate references selected by the matching task.
|
|
98
|
+
|
|
99
|
+
## Credits and provenance
|
|
100
|
+
|
|
101
|
+
This workflow is maintained by Antonio Fulgêncio. The process builds on work from the following
|
|
102
|
+
authors and communities:
|
|
103
|
+
|
|
104
|
+
- Tech Leads Club: the adapted [`wtk`](.agents/skills/wtk/SKILL.md),
|
|
105
|
+
based on [`tlc-spec-driven`](https://github.com/tech-leads-club/agent-skills/tree/main/skills/tlc-spec-driven),
|
|
106
|
+
and the security gate with its [security skills](https://github.com/tech-leads-club/agent-skills/tree/main/skills).
|
|
107
|
+
The integrated Lean source is pinned to commit `0ab82f644cd9caf94c65347a50ad934800b0cbc4` under
|
|
108
|
+
CC BY 4.0; see [`NOTICE.md`](NOTICE.md) and [`skills-lock.json`](skills-lock.json).
|
|
109
|
+
- Pedro Nauck: [`wtk-deep-review`](https://github.com/pedronauck/skills/tree/main/skills/mine/wtk-deep-review),
|
|
110
|
+
whose review workflow is adapted here.
|
|
111
|
+
- The project-owned `wtk-qa-plan` and `wtk-qa-execute` skills are Antonio's adaptations, inspired by Pedro's
|
|
112
|
+
[`qa-report`](https://github.com/pedronauck/skills/tree/main/skills/mine/qa-report) and
|
|
113
|
+
[`qa-execution`](https://github.com/pedronauck/skills/tree/main/skills/mine/qa-execution).
|
|
114
|
+
|
|
115
|
+
The QA skills use their own wording and structure for this workflow; the links above identify the
|
|
116
|
+
inspiration and do not claim upstream authorship.
|
|
117
|
+
|
|
118
|
+
The workflow references four external security skills:
|
|
119
|
+
|
|
120
|
+
- `security-spec` for security requirements and negative tests during Specify;
|
|
121
|
+
- `security-threat-model` for repository-grounded threats and trust boundaries;
|
|
122
|
+
- `security-implementation` for secure-by-default implementation and hardening;
|
|
123
|
+
- `security-review` for high-confidence residual vulnerability reviews.
|
|
124
|
+
|
|
125
|
+
Reviewed copies are versioned here for local agents, but excluded from the npm package.
|
|
126
|
+
Their GitHub source, canonical path, reviewed commit, CLI
|
|
127
|
+
version (`1.5.23`), and content hash are authoritative in [`skills-lock.json`](skills-lock.json).
|
|
128
|
+
Adoption prints a
|
|
129
|
+
separate installer command; run it only after explicit authorization because it uses the network
|
|
130
|
+
and writes the consumer's `.agents/skills/` tree. It does not install `latest` or silently update
|
|
131
|
+
these dependencies.
|
|
132
|
+
|
|
133
|
+
## Guided installation details
|
|
134
|
+
|
|
135
|
+
Copy the loop, not the product. New projects receive a neutral, consumer-owned
|
|
136
|
+
`docs/product/AGENT-CONTEXT.md` index; fill its identity and routes with existing project references
|
|
137
|
+
instead of copying this source pack's profile. Existing projects preserve their filled product
|
|
138
|
+
paragraph and product-owned documentation. Knowledge transfer is always a human review step.
|
|
139
|
+
|
|
140
|
+
The three fixed modules are `core` (Lean operating loop and shared tooling), `quality` (review and QA),
|
|
141
|
+
and `extras` (optional Ponytail utilities and prompt-review). Selecting `quality` or `extras` automatically
|
|
142
|
+
includes `core`. The guided command is:
|
|
143
|
+
|
|
144
|
+
`core` contains the Lean operating loop and Bun tooling; `quality` adds review and QA skills; and
|
|
145
|
+
`extras` adds optional Ponytail utilities and prompt-review. `full` resolves all three catalog modules.
|
|
146
|
+
Invoke `$prompt-review` for instruction audits or requested simplification.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
npx workflow-toolkit install
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
The target must be the current directory and the command must run in an interactive terminal.
|
|
153
|
+
The command never invokes Python. It previews add, update, adopt, preserve, replace, remove, and
|
|
154
|
+
no-change actions before asking for final confirmation.
|
|
155
|
+
|
|
156
|
+
Cancellation exits 0 with no target, adoption, journal, or backup changes. Invalid state, unsafe
|
|
157
|
+
paths, backup failures, and publication failures exit 1; non-interactive use exits 2 with the exact
|
|
158
|
+
TTY guidance.
|
|
159
|
+
|
|
160
|
+
Add capabilities later with another apply; installed layers are cumulative and omitted layers are
|
|
161
|
+
never removed. `--skip-agents` preserves both instruction files byte-for-byte and skips local-config
|
|
162
|
+
initialization and packet synchronization. Without it, adoption appends managed `core` and `quality`
|
|
163
|
+
blocks while preserving consumer prose. A differing
|
|
164
|
+
managed file or unowned destination is reported as a conflict and causes zero writes.
|
|
165
|
+
|
|
166
|
+
### Recovery and conflict handling
|
|
167
|
+
|
|
168
|
+
For an existing project copied from an older workflow release, the wizard inspects current files and
|
|
169
|
+
the adoption manifest. It reports every conflict before writing. Choose `Back up and replace`,
|
|
170
|
+
`Exclude module`, or `Cancel installation`; excluding `core` also excludes dependent modules.
|
|
171
|
+
|
|
172
|
+
If the process stops after publication begins, the next run detects the transaction journal and
|
|
173
|
+
offers restoration from its verified backup before allowing a new installation.
|
|
174
|
+
|
|
175
|
+
### Test resources
|
|
176
|
+
|
|
177
|
+
The Lean route uses one sequential builder. Consuming projects may serialize heavy commands that
|
|
178
|
+
share a browser, database, container runtime, or other declared resource.
|
|
179
|
+
|
|
180
|
+
Prerequisites: Node.js 18 or newer and an interactive terminal. Python is not an installer
|
|
181
|
+
prerequisite; unrelated Python workflow tools remain available after installation.
|
|
182
|
+
|
|
183
|
+
The preview is the review: inspect the complete action list and backup destination before confirming.
|
|
184
|
+
|
|
185
|
+
Feature workflow state follows the [artifact lifecycle](.agents/skills/wtk/references/artifacts.md) and
|
|
186
|
+
remains visible to Git. Adoption removes only the exact legacy `.specs/features/` ignore line,
|
|
187
|
+
including duplicates, preserves consumer-owned lines and comments, and never stages or commits files
|
|
188
|
+
from the transient feature tree.
|
|
189
|
+
|
|
190
|
+
The tracked `.wtk.toml.example` documents the complete v3 matrix and `mixed` profile. Each
|
|
191
|
+
checkout owns an ignored `.wtk.toml`, initialized from that example by adoption without
|
|
192
|
+
`--skip-agents` or by explicit sync;
|
|
193
|
+
it is the single editable source for all Claude, Codex, and Cursor model and effort choices. The
|
|
194
|
+
tracked `.agents/skills/wtk-config/assets/agents/` trees hold canonical instruction bodies, while sync generates the
|
|
195
|
+
ignored native runtime packets. Re-adoption preserves an existing local config byte-for-byte and
|
|
196
|
+
regenerates runtime packets from the templates and that config when `--skip-agents` is not used.
|
|
197
|
+
With `--skip-agents`, sync is an explicit later operator step.
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
python3 .agents/skills/wtk-config/scripts/workflow_config.py \
|
|
201
|
+
--root /path/to/target-project --sync-agents
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Edit the `[models.<provider>.<role>]` tables in the local `.wtk.toml`, then run the explicit
|
|
205
|
+
sync command. If the local file is missing, sync validates and copies
|
|
206
|
+
`.wtk.toml.example` first. It reports changed and unchanged runtime packet paths and is
|
|
207
|
+
idempotent. Native `model`, `effort`, and `model_reasoning_effort` fields are generated output; do
|
|
208
|
+
not edit runtime packets manually. Runtime edits are disposable; edit tracked templates when
|
|
209
|
+
changing instruction bodies.
|
|
210
|
+
|
|
211
|
+
The `cadence` controls the wtk-deep-review groups:
|
|
212
|
+
|
|
213
|
+
The default is `skip`: Deep Review runs only when the operator requests it or explicitly selects a
|
|
214
|
+
scheduled cadence.
|
|
215
|
+
|
|
216
|
+
- `slice`: one group per slice (`1, 2, 3, 4` → `[1] [2] [3] [4]`).
|
|
217
|
+
- `feature`: one group for the whole feature (`1, 2, 3, 4` → `[1, 2, 3, 4]`).
|
|
218
|
+
- `grouped.N`: consecutive, balanced groups with at most `N` slices (`grouped.3` with four
|
|
219
|
+
slices → `[1, 2] [3, 4]`).
|
|
220
|
+
- `skip`: no groups (`[]`); final QA, readiness, and merge do not wait for wtk-deep-review, and the
|
|
221
|
+
human runs `wtk-deep-review` later.
|
|
222
|
+
|
|
223
|
+
Post-cap remediation is bounded by `[remediation] stall_attempts`. It defaults to `3`; `0` means
|
|
224
|
+
unbounded. The threshold is read from the current local config on every attempt and is not stored
|
|
225
|
+
in the feature snapshot:
|
|
226
|
+
|
|
227
|
+
```toml
|
|
228
|
+
[remediation]
|
|
229
|
+
stall_attempts = 3
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
After each remediation attempt, the scoped gate produces a normalized, sorted failing-test
|
|
233
|
+
signature. A strictly smaller failing-test set resets the stall counter; an equal-size or larger
|
|
234
|
+
set increments it, including when membership changes. A reached nonzero threshold halts with the
|
|
235
|
+
signature, attempt count, and fixes tried. An unavailable gate halts immediately. The review cap
|
|
236
|
+
never opens a third wtk-deep-review round.
|
|
237
|
+
|
|
238
|
+
The resolver uses the native provider for every role unless a named profile or role override is
|
|
239
|
+
selected. Precedence is `CLI override > profile > native provider`:
|
|
240
|
+
|
|
241
|
+
When a feature has `tasks.md`, the resolver validates its vertical-slice closure table and derives
|
|
242
|
+
the slice count from merge-alone outcomes. A feature without `tasks.md` uses one slice. `--slices`
|
|
243
|
+
is an optional assertion against that derived count during initial resolution or refresh; it is not
|
|
244
|
+
the source of truth.
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Native route: all roles use Codex.
|
|
248
|
+
python3 .agents/skills/wtk-config/scripts/workflow_config.py \
|
|
249
|
+
--root /path/to/target-project --feature register-user-native \
|
|
250
|
+
--native-provider codex
|
|
251
|
+
|
|
252
|
+
# Named profile: use the [profiles.mixed] routes from .wtk.toml.
|
|
253
|
+
python3 .agents/skills/wtk-config/scripts/workflow_config.py \
|
|
254
|
+
--root /path/to/target-project --feature register-user-profile \
|
|
255
|
+
--native-provider codex --profile mixed
|
|
256
|
+
|
|
257
|
+
# Role overrides win over both the selected profile and the native provider.
|
|
258
|
+
python3 .agents/skills/wtk-config/scripts/workflow_config.py \
|
|
259
|
+
--root /path/to/target-project --feature register-user-override \
|
|
260
|
+
--native-provider codex --profile mixed \
|
|
261
|
+
--override deep_reviewer=cursor --override verifier=claude
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
The first resolution freezes the effective route and cadence in
|
|
265
|
+
`.specs/features/<feature>/workflow.json`, including model and effort for every delegated role.
|
|
266
|
+
Planner is synchronized but remains the top-level session, not a delegated snapshot role. On
|
|
267
|
+
resume, the snapshot is authoritative and packet metadata must still match its frozen model and
|
|
268
|
+
effort. If it differs, synchronize packets and explicitly refresh; ordinary resume will fail:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
python3 .agents/skills/wtk-config/scripts/workflow_config.py \
|
|
272
|
+
--root /path/to/target-project --feature register-user-refresh \
|
|
273
|
+
--native-provider codex --refresh
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
The complete contract is in the
|
|
277
|
+
[wtk-config skill](.agents/skills/wtk-config/SKILL.md).
|
|
278
|
+
|
|
279
|
+
## Update an adopted project
|
|
280
|
+
|
|
281
|
+
Start from a clean tree and a dedicated update branch. Read the changelog since the version the
|
|
282
|
+
project adopted, then run the guided installer and inspect the complete diff before committing:
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
cd /path/to/target-project
|
|
286
|
+
git status --short
|
|
287
|
+
git switch -c build/update-wtk
|
|
288
|
+
npx workflow-toolkit install
|
|
289
|
+
git diff
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Run `npx workflow-toolkit install` for every installation or update. It updates pristine
|
|
293
|
+
workflow-owned files, promotes provider templates using recorded source hashes, refreshes managed
|
|
294
|
+
instruction blocks and runtime packets, and stops with all conflicts before writing.
|
|
295
|
+
|
|
296
|
+
Adoption preserves product context, local config, package metadata, existing knowledge, and unknown
|
|
297
|
+
consumer files. A fresh target receives managed generic knowledge instructions plus neutral,
|
|
298
|
+
consumer-owned wiki indexes and log. Source concepts and dated raw observations never cross the
|
|
299
|
+
repository boundary. Retired workflow files are removed only when their managed hashes prove they
|
|
300
|
+
are pristine; edited or unproven paths conflict with zero writes.
|
|
301
|
+
|
|
302
|
+
Each release lists its upgrade steps under `### Migration` in the changelog; follow them in order
|
|
303
|
+
after installation. The package identity for this release is `workflow-toolkit@1.0.1` with the `wtk` executable.
|
|
304
|
+
|
|
305
|
+
## Managed paths
|
|
306
|
+
|
|
307
|
+
Review the managed paths and the installer's per-file actions. Installation updates only workflow-owned files,
|
|
308
|
+
preserves unknown consumer files, creates `.wtk.toml.example` and skill-owned runtime, and records ownership in `.my-workflow/adoption.json`. It never removes an
|
|
309
|
+
installed layer or consumer file. Product documentation, `.specs/`, `package.json`, `bun.lock`, an
|
|
310
|
+
existing local `.wtk.toml`, and an existing `docs/qa/README.md` remain consumer-owned.
|
|
311
|
+
|
|
312
|
+
The local config is the source for generated provider packets. Installation preserves an existing
|
|
313
|
+
`.wtk.toml` and installs tracked templates when missing. The guided command synchronizes and
|
|
314
|
+
regenerates the ignored `.claude/agents/`,
|
|
315
|
+
`.codex/agents/`, and `.cursor/agents/` packets from the templates and config. Edit the config or
|
|
316
|
+
tracked templates, not generated runtime packets.
|
|
317
|
+
|
|
318
|
+
## Troubleshooting
|
|
319
|
+
|
|
320
|
+
**`conflict` during installation.** Review every listed path. Restore an owned file to its recorded
|
|
321
|
+
hash or resolve an unowned collision, then run the guided command again. Installation is all-preflight:
|
|
322
|
+
no selected file or manifest is written while any conflict remains.
|
|
323
|
+
|
|
324
|
+
**`refusing adoption: Makefile:N uses machine-global workflow skill path`** Point the target's gate at
|
|
325
|
+
the vendored `.agents/skills/wtk-config/scripts/...` path.
|
|
326
|
+
|
|
327
|
+
**Claude skill symlinks point nowhere.** Re-run `npx workflow-toolkit install`; it recreates the `.claude/skills/`
|
|
328
|
+
links into `.agents/skills/`.
|
|
329
|
+
|
|
330
|
+
**A runtime packet has the wrong model or effort.** Edit the local `.wtk.toml`, then run
|
|
331
|
+
`npx workflow-toolkit install`. Runtime packets are generated output.
|
|
332
|
+
|
|
333
|
+
## Repository intelligence
|
|
334
|
+
|
|
335
|
+
The workflow stays stack- and tool-agnostic while using provider-neutral repository-intelligence defaults.
|
|
336
|
+
Graphify and Graft are the standard, checkout-local development tools for repository intelligence.
|
|
337
|
+
They never enter application runtime dependencies, and specs plus current checkout source remain
|
|
338
|
+
authoritative.
|
|
339
|
+
|
|
340
|
+
Use the smallest route that answers the question:
|
|
341
|
+
|
|
342
|
+
- Existing file, symbol, API, caller, and callee pointers: skip retrieval.
|
|
343
|
+
- Architectural trigger (boundary, responsibility transfer, shared abstraction, central flow, or
|
|
344
|
+
unresolved architectural risk): query Graphify first, then use Graft for implementation pointers.
|
|
345
|
+
- Unknown code location or call relationship: query Graft before broad native search.
|
|
346
|
+
- Exact-text question: use exact native search.
|
|
347
|
+
|
|
348
|
+
Tool output stays bounded. Missing, wrong-version, stale, failed, partial, or insufficient output
|
|
349
|
+
produces one explicit degraded reason for the phase, then targeted native inspection. Degraded
|
|
350
|
+
inspection is a fallback, not normal routing.
|
|
351
|
+
|
|
352
|
+
Adoption reports these exact development-tool remediation commands without executing them or changing
|
|
353
|
+
application dependencies:
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
npm install --save-dev --save-exact @nanonets/graft@0.10.1
|
|
357
|
+
uv tool install graphifyy==0.9.14
|
|
358
|
+
python3 .agents/skills/wtk-config/scripts/repository_intelligence.py \
|
|
359
|
+
graphify-setup --root . --backend <backend> --mode deep
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Graphify semantic extraction requires an explicit backend and discloses its source scope before
|
|
363
|
+
extraction. Each query refreshes or rejects state using the active checkout and working-tree
|
|
364
|
+
fingerprint. Generated graphs, caches, backend metadata, and benchmark scratch records remain ignored
|
|
365
|
+
under `graft/`, `graphify-out/`, and `.repository-intelligence/`.
|
|
366
|
+
|
|
367
|
+
The directional retention pilot records one controlled terminal task per JSONL record, including task
|
|
368
|
+
category, configuration (`baseline`, `graft`, or `routed`), snapshot and prompt controls, provider,
|
|
369
|
+
model, effort, token metrics, repository-intelligence/native-search calls, files read, wall-clock time,
|
|
370
|
+
gate, Verifier, findings, rework, and outcome. Compare the same controls within each category after
|
|
371
|
+
10–20 terminal tasks. A promoted report is directional, not statistically conclusive; removing or
|
|
372
|
+
changing routing requires a later explicit project decision.
|
|
373
|
+
|
|
374
|
+
## Optional integrations
|
|
375
|
+
|
|
376
|
+
**OpenDesign** remains an optional visual capability. The repository stores only the approved handoff;
|
|
377
|
+
absence or failure falls back to normal repository artifacts. It is separate from standard Graphify
|
|
378
|
+
and Graft routing. No integration is mandatory or installed by adoption for visual iteration.
|
|
379
|
+
|
|
380
|
+
The installer merges workflow-owned ignore entries, copies missing example/templates, generates
|
|
381
|
+
local runtime packets, and records per-file ownership in `.my-workflow/adoption.json`. It preserves
|
|
382
|
+
consumer prose through managed blocks, never removes an installed layer, and leaves package
|
|
383
|
+
metadata, local config, and unknown files untouched. Always review the plan and resulting diff
|
|
384
|
+
before accepting managed-path updates.
|
|
385
|
+
Adoption itself does not install external security skills. It prints the exact command for the
|
|
386
|
+
separate authorized step and leaves the security gate uncovered until that command succeeds.
|
|
387
|
+
|
|
388
|
+
## Skills
|
|
389
|
+
|
|
390
|
+
Canonical copies live in `.agents/skills/`. Claude Code gets symlinks in `.claude/skills/`. Cursor,
|
|
391
|
+
Codex and OpenCode consume `.agents`. Do not add `.cursor/skills` or other agent trees. The
|
|
392
|
+
project-owned `wtk-qa-plan` and `wtk-qa-execute` skills use the consuming project's profile in
|
|
393
|
+
`docs/qa/README.md`; they do not select a framework or replace the project's gate.
|
|
394
|
+
|
|
395
|
+
`npx workflow-toolkit install` installs and updates only the workflow-owned `wtk` router, its Lean
|
|
396
|
+
skills (`wtk-lean`, `wtk-discover`, `wtk-plan`, `wtk-implement`), Ponytail, Deep
|
|
397
|
+
Review, QA, wtk-config, and wtk-ship skills. Keep those canonical copies in
|
|
398
|
+
`.agents/skills/` and the Claude Code
|
|
399
|
+
symlinks in `.claude/skills/`. The four external security skills are a separate authorized step:
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
python3 /path/to/workflow-toolkit/scripts/install_security_skills.py \
|
|
403
|
+
/path/to/target-project --yes
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
The installer uses only the reviewed refs and hashes in `skills-lock.json`; it does not resolve
|
|
407
|
+
`latest` or perform automatic updates. Review its printed plan and authorize the command before
|
|
408
|
+
running it. Until it succeeds, do not treat the security gate as covered.
|
|
409
|
+
|
|
410
|
+
`wtk-ship` is vendored here. `CLAUDE.md` is the one line `@AGENTS.md` (not a symlink). Canonical
|
|
411
|
+
packet templates live under `.agents/skills/wtk-config/assets/agents/{cursor,claude,codex}/`; generated implementer,
|
|
412
|
+
explorer and verifier runtimes live under the ignored `.cursor/agents/`, `.claude/agents/` and
|
|
413
|
+
`.codex/agents/` directories.
|
|
414
|
+
|
|
415
|
+
## Knowledge checker
|
|
416
|
+
|
|
417
|
+
These are optional source-pack maintainer checks, not adoption or consumer task gates.
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
bun install --frozen-lockfile
|
|
421
|
+
bun run test:all
|
|
422
|
+
bun run knowledge
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
The consuming project's full gate should not include this checker. Run it when writing to the
|
|
426
|
+
bundle.
|
|
427
|
+
|
|
428
|
+
## Out of scope
|
|
429
|
+
|
|
430
|
+
Product domains, product-owned documentation, architecture, infrastructure, and framework choices
|
|
431
|
+
belong to the consuming project. This pack is stack-agnostic on purpose and does not prescribe a
|
|
432
|
+
browser, API, CLI, mobile, or manual QA runner.
|
|
433
|
+
|
|
434
|
+
## Deliberately not included
|
|
435
|
+
|
|
436
|
+
- Any product, domain, architecture, or design *concepts* from a source project's wiki
|
|
437
|
+
- Dated `knowledge/raw/` observations
|
|
438
|
+
- Library and stack skills
|
|
439
|
+
- A product skeleton, Makefile, port scheme, or worktree-slot arithmetic
|
|
440
|
+
- Retired orchestration history
|