@kontourai/flow-agents 1.1.0 → 1.3.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.
Files changed (119) hide show
  1. package/.github/workflows/ci.yml +6 -1
  2. package/.github/workflows/kit-gates-demo.yml +6 -2
  3. package/.github/workflows/runtime-compat.yml +5 -2
  4. package/CHANGELOG.md +51 -0
  5. package/CONTRIBUTING.md +30 -0
  6. package/README.md +26 -5
  7. package/agents/dev.json +1 -1
  8. package/agents/tool-planner.json +1 -1
  9. package/build/src/cli/{flow-kit.js → kit.js} +122 -108
  10. package/build/src/cli/validate-source-tree.js +4 -4
  11. package/build/src/cli/workflow-sidecar.js +70 -5
  12. package/build/src/cli.js +3 -3
  13. package/build/src/flow-kit/validate.js +89 -62
  14. package/build/src/tools/build-universal-bundles.js +78 -17
  15. package/build/src/tools/generate-context-map.js +49 -7
  16. package/build/src/tools/validate-source-tree.js +32 -1
  17. package/console.telemetry.json +1 -1
  18. package/docs/adr/0004-gates-expect-surface-claims.md +7 -7
  19. package/docs/adr/0007-flow-skill-kit-tool-boundary.md +169 -0
  20. package/docs/adr/0007-skill-audit.md +112 -0
  21. package/docs/adr/0008-kit-operation-boundary.md +88 -0
  22. package/docs/context-map.md +18 -22
  23. package/docs/flow-kit-repository-contract.md +5 -5
  24. package/docs/getting-started.md +177 -0
  25. package/docs/index.md +19 -8
  26. package/docs/kit-authoring-guide.md +125 -13
  27. package/docs/knowledge-kit.md +2 -2
  28. package/docs/operating-layers.md +2 -2
  29. package/docs/spec/runtime-hook-surface.md +1 -1
  30. package/docs/veritas-integration.md +4 -4
  31. package/docs/vision.md +1 -1
  32. package/docs/workflow-eval-strategy.md +2 -2
  33. package/docs/workflow-usage-guide.md +2 -2
  34. package/evals/acceptance/test_opencode_harness.sh +18 -10
  35. package/evals/acceptance/test_pi_harness.sh +10 -6
  36. package/evals/ci/run-baseline.sh +1 -1
  37. package/evals/fixtures/builder-kit-workflow-state/happy-path.json +2 -2
  38. package/evals/fixtures/builder-kit-workflow-state/mid-work-resume.json +2 -2
  39. package/evals/fixtures/console-learning-projection/artifacts/console-learning-correction/learning.json +1 -1
  40. package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/flows/runtime.flow.json +4 -4
  41. package/evals/fixtures/flow-kit-repository/valid-local-kit/flows/review.flow.json +4 -4
  42. package/evals/fixtures/kit-conformance-levels/k0-flows-only/flows/review.flow.json +4 -4
  43. package/evals/fixtures/kit-conformance-levels/k1-agent-extension/flows/build.flow.json +4 -4
  44. package/evals/fixtures/kit-conformance-levels/k2-with-evals/flows/synthesize.flow.json +4 -4
  45. package/evals/fixtures/kit-conformance-levels/third-party-extension/flows/review.flow.json +4 -4
  46. package/evals/fixtures/pull-work-provider/github-issues.json +5 -5
  47. package/evals/fixtures/surface-trust/accepted-claim-trust-report.json +2 -2
  48. package/evals/fixtures/surface-trust/artifact-absent.json +2 -2
  49. package/evals/fixtures/surface-trust/integrity-mismatch-trust-report.json +2 -2
  50. package/evals/fixtures/surface-trust/missing-authority-trust-report.json +2 -2
  51. package/evals/fixtures/surface-trust/provider-absent.json +2 -2
  52. package/evals/fixtures/surface-trust/rejected-claim-trust-report.json +2 -2
  53. package/evals/fixtures/surface-trust/stale-claim-trust-snapshot.json +2 -2
  54. package/evals/integration/test_activate_npx_context.sh +2 -2
  55. package/evals/integration/test_bundle_install.sh +17 -12
  56. package/evals/integration/test_console_learning_projection.sh +2 -2
  57. package/evals/integration/test_flow_kit_install_git.sh +7 -7
  58. package/evals/integration/test_flow_kit_repository.sh +4 -4
  59. package/evals/integration/test_goal_fit_hook.sh +144 -0
  60. package/evals/integration/test_kit_conformance_levels.sh +56 -2
  61. package/evals/integration/test_local_flow_kit_install.sh +7 -7
  62. package/evals/integration/test_publish_change_helper.sh +1 -1
  63. package/evals/integration/test_pull_work_provider.sh +1 -1
  64. package/evals/integration/test_runtime_adapter_activation.sh +3 -3
  65. package/evals/integration/test_workflow_sidecar_writer.sh +9 -9
  66. package/evals/lib/node.sh +2 -2
  67. package/evals/static/test_package.sh +3 -3
  68. package/evals/static/test_workflow_skills.sh +19 -19
  69. package/integrations/strands/flow_agents_strands/steering.py +1 -1
  70. package/integrations/strands-ts/src/hooks.ts +1 -1
  71. package/kits/builder/flows/build.flow.json +48 -48
  72. package/kits/builder/flows/shape.flow.json +36 -36
  73. package/kits/builder/kit.json +17 -0
  74. package/{skills → kits/builder/skills}/builder-shape/SKILL.md +4 -4
  75. package/{skills → kits/builder/skills}/idea-to-backlog/SKILL.md +1 -1
  76. package/kits/knowledge/adapters/obsidian-store/index.js +137 -26
  77. package/kits/knowledge/evals/contract-suite/suite.test.js +90 -0
  78. package/kits/knowledge/flows/compile.flow.json +12 -12
  79. package/kits/knowledge/flows/consolidate.flow.json +16 -16
  80. package/kits/knowledge/flows/ingest.flow.json +12 -12
  81. package/kits/knowledge/flows/retire.flow.json +16 -16
  82. package/kits/knowledge/flows/store-contract.flow.json +12 -12
  83. package/kits/knowledge/flows/synthesize.flow.json +16 -16
  84. package/kits/knowledge/kit.json +16 -9
  85. package/kits/release-evidence/flows/release-evidence.flow.json +3 -3
  86. package/package.json +11 -5
  87. package/packaging/packs.json +1 -21
  88. package/schemas/workflow-evidence.schema.json +2 -1
  89. package/scripts/README.md +1 -1
  90. package/scripts/hooks/stop-goal-fit.js +66 -18
  91. package/scripts/kit.js +2 -0
  92. package/skills/README.md +23 -0
  93. package/src/cli/{flow-kit.ts → kit.ts} +124 -109
  94. package/src/cli/validate-source-tree.ts +4 -4
  95. package/src/cli/workflow-sidecar.ts +62 -4
  96. package/src/cli.ts +3 -3
  97. package/src/flow-kit/validate.ts +118 -58
  98. package/src/tools/build-universal-bundles.ts +74 -13
  99. package/src/tools/generate-context-map.ts +36 -6
  100. package/src/tools/validate-source-tree.ts +27 -1
  101. package/scripts/flow-kit.js +0 -2
  102. package/skills/context-budget/SKILL.md +0 -40
  103. package/skills/explore/SKILL.md +0 -137
  104. package/skills/feedback-loop/SKILL.md +0 -87
  105. package/skills/frontend-design/SKILL.md +0 -80
  106. /package/{skills → kits/builder/skills}/deliver/SKILL.md +0 -0
  107. /package/{skills → kits/builder/skills}/design-probe/SKILL.md +0 -0
  108. /package/{skills → kits/builder/skills}/evidence-gate/SKILL.md +0 -0
  109. /package/{skills → kits/builder/skills}/execute-plan/SKILL.md +0 -0
  110. /package/{skills → kits/builder/skills}/fix-bug/SKILL.md +0 -0
  111. /package/{skills → kits/builder/skills}/learning-review/SKILL.md +0 -0
  112. /package/{skills → kits/builder/skills}/pickup-probe/SKILL.md +0 -0
  113. /package/{skills → kits/builder/skills}/plan-work/SKILL.md +0 -0
  114. /package/{skills → kits/builder/skills}/pull-work/SKILL.md +0 -0
  115. /package/{skills → kits/builder/skills}/release-readiness/SKILL.md +0 -0
  116. /package/{skills → kits/builder/skills}/review-work/SKILL.md +0 -0
  117. /package/{skills → kits/builder/skills}/tdd-workflow/SKILL.md +0 -0
  118. /package/{skills → kits/builder/skills}/verify-work/SKILL.md +0 -0
  119. /package/{skills → kits/knowledge/skills}/knowledge-capture/SKILL.md +0 -0
@@ -19,12 +19,12 @@
19
19
  "expects": [
20
20
  {
21
21
  "id": "selected-work",
22
- "kind": "surface.claim",
22
+ "kind": "trust.bundle",
23
23
  "required": true,
24
24
  "description": "A ready work item is selected with scope and acceptance context.",
25
- "claim": {
26
- "type": "builder.pull-work.selected",
27
- "subject": "work-item",
25
+ "bundle_claim": {
26
+ "claimType": "builder.pull-work.selected",
27
+ "subjectType": "work-item",
28
28
  "accepted_statuses": ["trusted", "accepted"]
29
29
  }
30
30
  }
@@ -35,23 +35,23 @@
35
35
  "expects": [
36
36
  {
37
37
  "id": "pickup-probe-readiness",
38
- "kind": "surface.claim",
38
+ "kind": "trust.bundle",
39
39
  "required": true,
40
40
  "description": "Pickup Probe evidence is recorded before planning: goal fit and scope, blockers and dependencies, dependency freshness, acceptance criteria quality, provider state, risk, stop-short risks, planning readiness, decisions, unresolved questions, accepted gaps, probe_status, probe_artifact_ref, grouping decision, expected modified files, and conflict risks.",
41
- "claim": {
42
- "type": "builder.design-probe.pickup-readiness",
43
- "subject": "work-item",
41
+ "bundle_claim": {
42
+ "claimType": "builder.design-probe.pickup-readiness",
43
+ "subjectType": "work-item",
44
44
  "accepted_statuses": ["trusted", "accepted"]
45
45
  }
46
46
  },
47
47
  {
48
48
  "id": "probe-decisions-or-accepted-gaps",
49
- "kind": "surface.claim",
49
+ "kind": "trust.bundle",
50
50
  "required": true,
51
51
  "description": "Planning is blocked until pickup Probe decisions are captured in the pull-work or plan handoff artifact, or unresolved questions are explicitly recorded as accepted gaps. Stale broad continuation language after a merge is not sufficient for planning newly selected work.",
52
- "claim": {
53
- "type": "builder.design-probe.decisions",
54
- "subject": "decision",
52
+ "bundle_claim": {
53
+ "claimType": "builder.design-probe.decisions",
54
+ "subjectType": "decision",
55
55
  "accepted_statuses": ["trusted", "accepted"]
56
56
  }
57
57
  }
@@ -62,12 +62,12 @@
62
62
  "expects": [
63
63
  {
64
64
  "id": "implementation-plan",
65
- "kind": "surface.claim",
65
+ "kind": "trust.bundle",
66
66
  "required": true,
67
67
  "description": "The implementation plan names files, changes, acceptance evidence, and sequencing.",
68
- "claim": {
69
- "type": "builder.plan.implementation",
70
- "subject": "artifact",
68
+ "bundle_claim": {
69
+ "claimType": "builder.plan.implementation",
70
+ "subjectType": "artifact",
71
71
  "accepted_statuses": ["trusted", "accepted"]
72
72
  }
73
73
  }
@@ -78,12 +78,12 @@
78
78
  "expects": [
79
79
  {
80
80
  "id": "implementation-scope",
81
- "kind": "surface.claim",
81
+ "kind": "trust.bundle",
82
82
  "required": true,
83
83
  "description": "The implementation scope records changed files and excludes unrelated work.",
84
- "claim": {
85
- "type": "builder.execute.scope",
86
- "subject": "change",
84
+ "bundle_claim": {
85
+ "claimType": "builder.execute.scope",
86
+ "subjectType": "change",
87
87
  "accepted_statuses": ["trusted", "accepted"]
88
88
  }
89
89
  }
@@ -105,24 +105,24 @@
105
105
  "expects": [
106
106
  {
107
107
  "id": "tests-evidence",
108
- "kind": "surface.claim",
108
+ "kind": "trust.bundle",
109
109
  "required": true,
110
110
  "description": "Relevant tests or checks have evidence tied to the implemented change.",
111
- "claim": {
112
- "type": "builder.verify.tests",
113
- "subject": "flow-step",
111
+ "bundle_claim": {
112
+ "claimType": "builder.verify.tests",
113
+ "subjectType": "flow-step",
114
114
  "accepted_statuses": ["trusted", "accepted"]
115
115
  }
116
116
  },
117
117
  {
118
118
  "id": "policy-compliance",
119
- "kind": "surface.claim",
119
+ "kind": "trust.bundle",
120
120
  "required": false,
121
121
  "description": "Policy compliance evidence is attached when policy gates apply.",
122
122
  "explore_hint": "Use as advisory evidence for scope, security, privacy, release, or repository policy checks.",
123
- "claim": {
124
- "type": "builder.verify.policy-compliance",
125
- "subject": "artifact",
123
+ "bundle_claim": {
124
+ "claimType": "builder.verify.policy-compliance",
125
+ "subjectType": "artifact",
126
126
  "accepted_statuses": ["trusted", "accepted", "advisory"]
127
127
  }
128
128
  }
@@ -144,12 +144,12 @@
144
144
  "expects": [
145
145
  {
146
146
  "id": "merge-readiness",
147
- "kind": "surface.claim",
147
+ "kind": "trust.bundle",
148
148
  "required": true,
149
149
  "description": "The change is ready for merge review based on scope, evidence, and unresolved risks.",
150
- "claim": {
151
- "type": "builder.merge-ready.readiness",
152
- "subject": "change",
150
+ "bundle_claim": {
151
+ "claimType": "builder.merge-ready.readiness",
152
+ "subjectType": "change",
153
153
  "accepted_statuses": ["trusted", "accepted"]
154
154
  }
155
155
  }
@@ -160,12 +160,12 @@
160
160
  "expects": [
161
161
  {
162
162
  "id": "pull-request-opened",
163
- "kind": "surface.claim",
163
+ "kind": "trust.bundle",
164
164
  "required": true,
165
165
  "description": "A pull request exists with linked work, implementation summary, and verification evidence.",
166
- "claim": {
167
- "type": "builder.pr-open.pull-request",
168
- "subject": "pull-request",
166
+ "bundle_claim": {
167
+ "claimType": "builder.pr-open.pull-request",
168
+ "subjectType": "pull-request",
169
169
  "accepted_statuses": ["trusted", "accepted"]
170
170
  }
171
171
  }
@@ -176,12 +176,12 @@
176
176
  "expects": [
177
177
  {
178
178
  "id": "ci-merge-readiness",
179
- "kind": "surface.claim",
179
+ "kind": "trust.bundle",
180
180
  "required": true,
181
181
  "description": "CI and review status support a merge-ready decision.",
182
- "claim": {
183
- "type": "builder.merge-ready-ci.readiness",
184
- "subject": "pull-request",
182
+ "bundle_claim": {
183
+ "claimType": "builder.merge-ready-ci.readiness",
184
+ "subjectType": "pull-request",
185
185
  "accepted_statuses": ["trusted", "accepted"]
186
186
  }
187
187
  }
@@ -192,23 +192,23 @@
192
192
  "expects": [
193
193
  {
194
194
  "id": "decision-evidence",
195
- "kind": "surface.claim",
195
+ "kind": "trust.bundle",
196
196
  "required": true,
197
197
  "description": "Durable decision evidence from the build is recorded.",
198
- "claim": {
199
- "type": "builder.learn.decisions",
200
- "subject": "decision",
198
+ "bundle_claim": {
199
+ "claimType": "builder.learn.decisions",
200
+ "subjectType": "decision",
201
201
  "accepted_statuses": ["trusted", "accepted"]
202
202
  }
203
203
  },
204
204
  {
205
205
  "id": "learning-evidence",
206
- "kind": "surface.claim",
206
+ "kind": "trust.bundle",
207
207
  "required": true,
208
208
  "description": "Learning evidence from delivery is recorded for future work.",
209
- "claim": {
210
- "type": "builder.learn.evidence",
211
- "subject": "release",
209
+ "bundle_claim": {
210
+ "claimType": "builder.learn.evidence",
211
+ "subjectType": "release",
212
212
  "accepted_statuses": ["trusted", "accepted"]
213
213
  }
214
214
  }
@@ -13,79 +13,79 @@
13
13
  "expects": [
14
14
  {
15
15
  "id": "shaped-problem",
16
- "kind": "surface.claim",
16
+ "kind": "trust.bundle",
17
17
  "required": true,
18
18
  "description": "The problem is stated in terms a builder can act on.",
19
- "claim": {
20
- "type": "builder.shape.problem",
21
- "subject": "decision",
19
+ "bundle_claim": {
20
+ "claimType": "builder.shape.problem",
21
+ "subjectType": "decision",
22
22
  "accepted_statuses": ["trusted", "accepted"]
23
23
  }
24
24
  },
25
25
  {
26
26
  "id": "shaped-outcome",
27
- "kind": "surface.claim",
27
+ "kind": "trust.bundle",
28
28
  "required": true,
29
29
  "description": "The intended outcome is explicit enough to evaluate later.",
30
- "claim": {
31
- "type": "builder.shape.outcome",
32
- "subject": "flow-run",
30
+ "bundle_claim": {
31
+ "claimType": "builder.shape.outcome",
32
+ "subjectType": "flow-run",
33
33
  "accepted_statuses": ["trusted", "accepted"]
34
34
  }
35
35
  },
36
36
  {
37
37
  "id": "shaped-constraints",
38
- "kind": "surface.claim",
38
+ "kind": "trust.bundle",
39
39
  "required": true,
40
40
  "description": "Constraints that affect implementation are captured.",
41
- "claim": {
42
- "type": "builder.shape.constraints",
43
- "subject": "decision",
41
+ "bundle_claim": {
42
+ "claimType": "builder.shape.constraints",
43
+ "subjectType": "decision",
44
44
  "accepted_statuses": ["trusted", "accepted"]
45
45
  }
46
46
  },
47
47
  {
48
48
  "id": "shaped-non-goals",
49
- "kind": "surface.claim",
49
+ "kind": "trust.bundle",
50
50
  "required": true,
51
51
  "description": "Non-goals are named so the build stays scoped.",
52
- "claim": {
53
- "type": "builder.shape.non-goals",
54
- "subject": "decision",
52
+ "bundle_claim": {
53
+ "claimType": "builder.shape.non-goals",
54
+ "subjectType": "decision",
55
55
  "accepted_statuses": ["trusted", "accepted"]
56
56
  }
57
57
  },
58
58
  {
59
59
  "id": "shaped-success",
60
- "kind": "surface.claim",
60
+ "kind": "trust.bundle",
61
61
  "required": true,
62
62
  "description": "Success criteria are concrete enough for verification.",
63
- "claim": {
64
- "type": "builder.shape.success",
65
- "subject": "artifact",
63
+ "bundle_claim": {
64
+ "claimType": "builder.shape.success",
65
+ "subjectType": "artifact",
66
66
  "accepted_statuses": ["trusted", "accepted"]
67
67
  }
68
68
  },
69
69
  {
70
70
  "id": "shaped-risk",
71
- "kind": "surface.claim",
71
+ "kind": "trust.bundle",
72
72
  "required": true,
73
73
  "description": "Material delivery risks are recorded before breakdown.",
74
- "claim": {
75
- "type": "builder.shape.risk",
76
- "subject": "decision",
74
+ "bundle_claim": {
75
+ "claimType": "builder.shape.risk",
76
+ "subjectType": "decision",
77
77
  "accepted_statuses": ["trusted", "accepted"]
78
78
  }
79
79
  },
80
80
  {
81
81
  "id": "open-decisions",
82
- "kind": "surface.claim",
82
+ "kind": "trust.bundle",
83
83
  "required": false,
84
84
  "description": "Open decisions are recorded when the shape is not fully settled.",
85
85
  "explore_hint": "Attach when unresolved choices could affect slices or issue boundaries.",
86
- "claim": {
87
- "type": "builder.shape.open-decisions",
88
- "subject": "decision",
86
+ "bundle_claim": {
87
+ "claimType": "builder.shape.open-decisions",
88
+ "subjectType": "decision",
89
89
  "accepted_statuses": ["trusted", "accepted", "advisory"]
90
90
  }
91
91
  }
@@ -96,12 +96,12 @@
96
96
  "expects": [
97
97
  {
98
98
  "id": "slices-defined",
99
- "kind": "surface.claim",
99
+ "kind": "trust.bundle",
100
100
  "required": true,
101
101
  "description": "The shaped work is split into independently useful slices.",
102
- "claim": {
103
- "type": "builder.breakdown.slices",
104
- "subject": "work-item",
102
+ "bundle_claim": {
103
+ "claimType": "builder.breakdown.slices",
104
+ "subjectType": "work-item",
105
105
  "accepted_statuses": ["trusted", "accepted"]
106
106
  }
107
107
  }
@@ -112,12 +112,12 @@
112
112
  "expects": [
113
113
  {
114
114
  "id": "work-items-filed",
115
- "kind": "surface.claim",
115
+ "kind": "trust.bundle",
116
116
  "required": true,
117
117
  "description": "Work items are filed or otherwise recorded with enough context to pull later.",
118
- "claim": {
119
- "type": "builder.file-issues.work-items",
120
- "subject": "work-item",
118
+ "bundle_claim": {
119
+ "claimType": "builder.file-issues.work-items",
120
+ "subjectType": "work-item",
121
121
  "accepted_statuses": ["trusted", "accepted"]
122
122
  }
123
123
  }
@@ -15,5 +15,22 @@
15
15
  "path": "flows/build.flow.json",
16
16
  "description": "Pull ready work through design probing, planning, implementation, verification, pull request readiness, merge readiness, and learning."
17
17
  }
18
+ ],
19
+ "skills": [
20
+ { "id": "builder.builder-shape", "path": "skills/builder-shape/SKILL.md", "description": "Invoke Builder Kit shape from a raw idea or the current conversation context." },
21
+ { "id": "builder.deliver", "path": "skills/deliver/SKILL.md", "description": "Delivery workflow — selected work to delivered code." },
22
+ { "id": "builder.design-probe", "path": "skills/design-probe/SKILL.md", "description": "One-question-at-a-time design probing interview." },
23
+ { "id": "builder.evidence-gate", "path": "skills/evidence-gate/SKILL.md", "description": "Evaluate whether completed work is trustworthy enough for human review, merge, or release." },
24
+ { "id": "builder.execute-plan", "path": "skills/execute-plan/SKILL.md", "description": "Parallel execution primitive — plan artifact path to implemented code." },
25
+ { "id": "builder.fix-bug", "path": "skills/fix-bug/SKILL.md", "description": "Bug fix orchestrator — diagnose, plan, execute, review, verify, loop." },
26
+ { "id": "builder.idea-to-backlog", "path": "skills/idea-to-backlog/SKILL.md", "description": "Turn raw ideas into shaped, prioritized, executable GitHub issue backlog." },
27
+ { "id": "builder.learning-review", "path": "skills/learning-review/SKILL.md", "description": "Capture post-merge learnings and feed them back into backlog, skills, tests, or knowledge." },
28
+ { "id": "builder.pickup-probe", "path": "skills/pickup-probe/SKILL.md", "description": "Builder Kit work-item/docs/provider-grounded Probe specialization before plan-work." },
29
+ { "id": "builder.plan-work", "path": "skills/plan-work/SKILL.md", "description": "Code planning primitive — goal + directory to structured execution plan." },
30
+ { "id": "builder.pull-work", "path": "skills/pull-work/SKILL.md", "description": "Select ready GitHub issues from the executable backlog for implementation." },
31
+ { "id": "builder.release-readiness", "path": "skills/release-readiness/SKILL.md", "description": "Decide whether evidence-backed work is ready to merge, release, deploy, or hold." },
32
+ { "id": "builder.review-work", "path": "skills/review-work/SKILL.md", "description": "Review primitive — code, security, dependency, architecture critique before verification." },
33
+ { "id": "builder.tdd-workflow", "path": "skills/tdd-workflow/SKILL.md", "description": "Test-driven development — RED, GREEN, REFACTOR with git checkpoints." },
34
+ { "id": "builder.verify-work", "path": "skills/verify-work/SKILL.md", "description": "Verification primitive — session file path to structured evidence verdict." }
18
35
  ]
19
36
  }
@@ -11,7 +11,7 @@ Invoke the Builder Kit `shape` flow for raw product ideas, vague build goals, cu
11
11
 
12
12
  - Product surface: let the user ask for "Builder Kit shape", "builder shape", or "shape this with Builder Kit" without naming `idea-to-backlog`.
13
13
  - Proactive suggestion: when a user starts planning a feature, product, PRD, roadmap item, or vague build idea without naming a workflow, briefly suggest Builder Kit shape as the structured path before implementation. Phrase it as an option, not a forced gate, unless the request is too ambiguous to plan responsibly.
14
- - Delegation: use `skills/idea-to-backlog/SKILL.md` as the shaping primitive. Do not duplicate or replace its workflow, artifact contract, issue shape, or gate rules.
14
+ - Delegation: use `kits/builder/skills/idea-to-backlog/SKILL.md` as the shaping primitive. Do not duplicate or replace its workflow, artifact contract, issue shape, or gate rules.
15
15
  - Product-level auto-guidance: when the user invokes Builder Kit shape, guide them through `design-probe` alignment and then the `idea-to-backlog` workflow directly; do not require them to type `design-probe` or `idea-to-backlog` as additional skill names.
16
16
  - do not require them to type `idea-to-backlog`; Builder Kit shape owns the user-facing route into that primitive.
17
17
  - Flow reference: link every Builder Kit shape artifact to the Builder Kit Flow Definition at `kits/builder/flows/shape.flow.json`.
@@ -19,7 +19,7 @@ Invoke the Builder Kit `shape` flow for raw product ideas, vague build goals, cu
19
19
  - Probe/alignment: when the idea, user outcome, constraints, non-goals, success signal, risk, or bundle relationship is unclear, run `design-probe` style alignment before continuing.
20
20
  - Default stop: stop at the backlog gate by default. Do not create GitHub issues, sync to a project, or hand off to `pull-work` unless the user explicitly asks for that next step.
21
21
  - Boundary: do not run Builder Kit build execution, remote kit install, package extraction, downstream delivery workflows, `plan-work`, `execute-plan`, `review-work`, `verify-work`, `evidence-gate`, or release workflows from this invocation.
22
- - Compatibility: Direct `idea-to-backlog` usage remains valid and should behave exactly as described in `skills/idea-to-backlog/SKILL.md`.
22
+ - Compatibility: Direct `idea-to-backlog` usage remains valid and should behave exactly as described in `kits/builder/skills/idea-to-backlog/SKILL.md`.
23
23
  - Primitive recovery: if a user invokes `idea-to-backlog` or another primitive with missing shaping context and appears to want the product flow, explain that Builder Kit shape is the entry point and offer to route there.
24
24
 
25
25
  ## Invocation
@@ -33,7 +33,7 @@ Use this skill when the user says things like:
33
33
 
34
34
  When activated:
35
35
 
36
- 1. Read `skills/idea-to-backlog/SKILL.md`.
36
+ 1. Read `kits/builder/skills/idea-to-backlog/SKILL.md`.
37
37
  2. State that Builder Kit shape delegates to `idea-to-backlog` and uses `kits/builder/flows/shape.flow.json`.
38
38
  3. Gather the raw idea or current conversation context.
39
39
  4. If needed, use `design-probe`: ask one Probe/alignment question at a time before shaping. Prefer questions that clarify user outcome, constraints, non-goals, success criteria, risk, or whether bundled ideas truly belong together.
@@ -72,5 +72,5 @@ For Builder Kit shape invocations, also include:
72
72
  Issue sync is explicit-only.
73
73
 
74
74
  - If the user did not ask to create or sync issues, set `backlog_links` to `not_requested` or an empty recorded status and stop at the backlog gate.
75
- - If the user asks to create or sync issues, follow the GitHub issue rules in `skills/idea-to-backlog/SKILL.md`.
75
+ - If the user asks to create or sync issues, follow the GitHub issue rules in `kits/builder/skills/idea-to-backlog/SKILL.md`.
76
76
  - If provider details are missing, ask for them instead of assuming a GitHub repository, project, labels, milestone, or assignee.
@@ -217,7 +217,7 @@ Provider-neutral marker example:
217
217
  "planned_at": "2026-06-03T03:23:14Z",
218
218
  "planning_artifact_ref": ".flow-agents/example/example--idea-to-backlog.md",
219
219
  "planning_scope_refs": [
220
- "skills/idea-to-backlog/SKILL.md",
220
+ "kits/builder/skills/idea-to-backlog/SKILL.md",
221
221
  "context/contracts/work-item-contract.md"
222
222
  ]
223
223
  }