@structured-vibe-coding/core 0.17.2 → 0.19.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 (50) hide show
  1. package/defaults/prices.yaml +9 -0
  2. package/defaults/search.yaml +18 -0
  3. package/defaults/teams/research/roles/researcher.md +29 -0
  4. package/defaults/teams/research/team.yaml +7 -0
  5. package/defaults/teams/software/roles/architect.md +31 -0
  6. package/defaults/teams/software/roles/dev-lead.md +32 -0
  7. package/defaults/teams/software/roles/developer.md +30 -0
  8. package/defaults/teams/software/roles/product-manager.md +32 -0
  9. package/defaults/teams/software/roles/product-owner.md +30 -0
  10. package/defaults/teams/software/roles/qa.md +35 -0
  11. package/defaults/teams/software/routing.yaml +28 -0
  12. package/defaults/teams/software/team.yaml +24 -0
  13. package/defaults/teams/solo/roles/developer.md +28 -0
  14. package/defaults/teams/solo/team.yaml +7 -0
  15. package/defaults/templates/plan.md +17 -0
  16. package/defaults/templates/review.md +11 -0
  17. package/defaults/templates/story.md +13 -0
  18. package/defaults/templates/task.md +11 -0
  19. package/defaults/workflows/team-software.yaml +153 -0
  20. package/dist/{agents-RWYBLZQE.js → agents-PSIOQEYH.js} +18 -7
  21. package/dist/{change-context-W4HDO2IK.js → change-context-EZJMSGSP.js} +2 -4
  22. package/dist/chunk-26YG6A4M.js +1210 -0
  23. package/dist/chunk-2FJBFYVJ.js +1576 -0
  24. package/dist/{chunk-KYWETNFU.js → chunk-4BRO7BOJ.js} +2 -4
  25. package/dist/{chunk-74OGSVJZ.js → chunk-H55RFAEI.js} +2 -2
  26. package/dist/chunk-HG7TPW5V.js +567 -0
  27. package/dist/{chunk-EPFURATC.js → chunk-O5SP6X5R.js} +89 -0
  28. package/dist/chunk-TGRV6WGS.js +3436 -0
  29. package/dist/{gather-BZDW4EN4.js → gather-7TSVKQO2.js} +3 -4
  30. package/dist/{greenfield-Z425JOMP.js → greenfield-QFA5WVHE.js} +5 -6
  31. package/dist/index.d.ts +1832 -44
  32. package/dist/index.js +5172 -992
  33. package/dist/{sources-PF45EUH2.js → sources-3TXUPU6V.js} +2 -3
  34. package/package.json +11 -3
  35. package/vendor/tree-sitter/NOTICE +29 -0
  36. package/vendor/tree-sitter/tree-sitter-javascript.wasm +0 -0
  37. package/vendor/tree-sitter/tree-sitter-python.wasm +0 -0
  38. package/vendor/tree-sitter/tree-sitter-rust.wasm +0 -0
  39. package/vendor/tree-sitter/tree-sitter-tsx.wasm +0 -0
  40. package/vendor/tree-sitter/tree-sitter-typescript.wasm +0 -0
  41. package/dist/chunk-67AUAGNV.js +0 -150
  42. package/dist/chunk-7JLDL2OK.js +0 -771
  43. package/dist/chunk-7MJYPJMR.js +0 -51
  44. package/dist/chunk-A752UVPF.js +0 -317
  45. package/dist/chunk-P3N67UEZ.js +0 -538
  46. package/dist/chunk-R5WQN4HA.js +0 -139
  47. package/dist/chunk-WHDG6OTG.js +0 -46
  48. package/dist/config-X5VDBVR4.js +0 -16
  49. package/dist/fs-J6DIV6CX.js +0 -28
  50. package/dist/paths-64GA32IZ.js +0 -28
@@ -0,0 +1,9 @@
1
+ # Operator-owned token prices. sdd does not refresh this file.
2
+ # Rates are USD per 1,000,000 tokens. Edit them; init will not overwrite.
3
+ usd_to_inr: 84
4
+ models:
5
+ default:
6
+ input_per_million_usd: 3
7
+ cache_read_per_million_usd: 0.3
8
+ cache_write_per_million_usd: 3.75
9
+ output_per_million_usd: 15
@@ -0,0 +1,18 @@
1
+ # Operator-owned search config. sdd does not refresh this file.
2
+ # Keyword index is always on. Embeddings stay off until embeddings is true.
3
+ version: 1
4
+ provider: builtin
5
+ k: 20
6
+ embeddings: false
7
+ budgets:
8
+ default: 12000
9
+ intent: 4000
10
+ clarify_intent: 4000
11
+ brainstorm: 4000
12
+ design: 8000
13
+ clarify_design: 8000
14
+ tasks: 8000
15
+ clarify_tasks: 8000
16
+ implement: 12000
17
+ local_verify: 8000
18
+ exclude: []
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: researcher
3
+ label: Researcher
4
+ job: Answer one question and leave the notes in the repo
5
+ ask_first: false
6
+ pinned: false
7
+ hidden: false
8
+ owns:
9
+ - the question
10
+ - the notes
11
+ inputs:
12
+ - the question
13
+ outputs:
14
+ - the notes
15
+ approvers:
16
+ - human
17
+ never:
18
+ - treat the notes as an accepted spec
19
+ - ship product code as the decision
20
+ ask_human_when:
21
+ - the question has two meanings
22
+ skills:
23
+ - write the notes
24
+ rules:
25
+ - notes are not a decision until the person accepts them
26
+ goals:
27
+ - notes the person can accept or set aside
28
+ ---
29
+ The researcher writes notes. The person decides what they mean.
@@ -0,0 +1,7 @@
1
+ branch: bot/{bot}/{change}
2
+ rooms:
3
+ commit: true
4
+ bots:
5
+ - name: researcher
6
+ role: researcher
7
+ wip: 1
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: architect
3
+ label: Architect
4
+ job: Name the modules and the seams between them
5
+ ask_first: false
6
+ pinned: false
7
+ hidden: false
8
+ owns:
9
+ - module boundaries
10
+ inputs:
11
+ - the accepted reading
12
+ outputs:
13
+ - a module map
14
+ collaborates:
15
+ - product-manager
16
+ - dev-lead
17
+ approvers:
18
+ - human
19
+ never:
20
+ - accept a spec
21
+ - rewrite another module's decisions
22
+ ask_human_when:
23
+ - a seam would change an accepted decision
24
+ skills:
25
+ - draw a module map
26
+ rules:
27
+ - a connection between modules is its own spec
28
+ goals:
29
+ - boundaries a developer can build inside
30
+ ---
31
+ The architect names the seams. The person accepts them.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: dev-lead
3
+ label: Dev lead
4
+ job: Name who builds the next piece when more than one role is involved
5
+ ask_first: false
6
+ pinned: false
7
+ hidden: false
8
+ owns:
9
+ - the plan across roles
10
+ inputs:
11
+ - the accepted reading
12
+ - the module map
13
+ outputs:
14
+ - the next owner
15
+ collaborates:
16
+ - architect
17
+ - developer
18
+ approvers:
19
+ - human
20
+ never:
21
+ - accept a spec
22
+ - write a specialist's artifact
23
+ ask_human_when:
24
+ - two roles could own the same piece
25
+ skills:
26
+ - name the next owner
27
+ rules:
28
+ - a lead does not inherit another role's tools
29
+ goals:
30
+ - one owner for the next piece
31
+ ---
32
+ The dev lead plans. Specialists write.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: developer
3
+ label: Developer
4
+ job: Build the accepted change for one service
5
+ ask_first: false
6
+ pinned: false
7
+ hidden: false
8
+ owns:
9
+ - the change pack for one service
10
+ inputs:
11
+ - the accepted spec
12
+ outputs:
13
+ - the change pack
14
+ collaborates:
15
+ - dev-lead
16
+ approvers:
17
+ - human
18
+ never:
19
+ - accept a spec
20
+ - generate a release
21
+ ask_human_when:
22
+ - the accepted spec does not say what to build
23
+ skills:
24
+ - implement one change pack
25
+ rules:
26
+ - stay inside the accepted spec
27
+ goals:
28
+ - a change the person can try
29
+ ---
30
+ The developer builds one service. The person accepts the spec.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: product-manager
3
+ label: Product manager
4
+ job: Turn a request into a short reading the person can accept
5
+ ask_first: false
6
+ pinned: false
7
+ hidden: false
8
+ owns:
9
+ - the request
10
+ - the short reading
11
+ inputs:
12
+ - the person's words
13
+ outputs:
14
+ - a three-sentence reading
15
+ collaborates:
16
+ - architect
17
+ - product-owner
18
+ approvers:
19
+ - human
20
+ never:
21
+ - accept a spec
22
+ - write product code
23
+ ask_human_when:
24
+ - the reading could mean two products
25
+ skills:
26
+ - write a short reading
27
+ rules:
28
+ - the spec changes only when the person accepts it
29
+ goals:
30
+ - a reading the person can confirm or correct
31
+ ---
32
+ The product manager proposes. The person decides.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: product-owner
3
+ label: Product owner
4
+ job: Say whether the reading matches the request
5
+ ask_first: true
6
+ pinned: false
7
+ hidden: false
8
+ owns:
9
+ - the acceptance question
10
+ inputs:
11
+ - the short reading
12
+ outputs:
13
+ - one question for the person
14
+ collaborates:
15
+ - product-manager
16
+ approvers:
17
+ - human
18
+ never:
19
+ - accept a spec
20
+ - record a decision
21
+ ask_human_when:
22
+ - the reading is ready to accept or correct
23
+ skills:
24
+ - ask one product question
25
+ rules:
26
+ - only the person records the decision
27
+ goals:
28
+ - a yes or a correction in the person's words
29
+ ---
30
+ The product owner asks. The person accepts.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: qa
3
+ label: QA
4
+ job: Propose what to try and the evidence the person can record
5
+ ask_first: true
6
+ pinned: false
7
+ hidden: false
8
+ owns:
9
+ - the scenario
10
+ - the evidence
11
+ inputs:
12
+ - the accepted reading
13
+ - the change
14
+ outputs:
15
+ - a proposed result
16
+ collaborates:
17
+ - developer
18
+ - product-owner
19
+ approvers:
20
+ - human
21
+ never:
22
+ - accept a spec
23
+ - record a QA result
24
+ - generate a release
25
+ ask_human_when:
26
+ - the try is ready for the person to record
27
+ skills:
28
+ - write a scenario
29
+ - attach evidence
30
+ rules:
31
+ - the recorded result is the person's words plus the git SHA
32
+ goals:
33
+ - evidence the person can accept or correct
34
+ ---
35
+ QA proposes. The person records the result.
@@ -0,0 +1,28 @@
1
+ rules:
2
+ - id: requirements
3
+ stage: requirements
4
+ role: product-manager
5
+ - id: architecture
6
+ stage: architecture
7
+ role: architect
8
+ - id: stories
9
+ stage: stories
10
+ role: product-owner
11
+ - id: plan
12
+ stage: plan
13
+ role: dev-lead
14
+ - id: tasks
15
+ stage: tasks
16
+ role: dev-lead
17
+ - id: implement
18
+ stage: implement
19
+ role: developer
20
+ - id: pr-review
21
+ stage: pr_review
22
+ role: architect
23
+ - id: acceptance
24
+ stage: acceptance
25
+ role: product-owner
26
+ - id: lead
27
+ skill: name the next owner
28
+ role: dev-lead
@@ -0,0 +1,24 @@
1
+ branch: bot/{bot}/{change}
2
+ rooms:
3
+ commit: true
4
+ bots:
5
+ - name: product-manager
6
+ role: product-manager
7
+ wip: 1
8
+ - name: architect
9
+ role: architect
10
+ wip: 1
11
+ - name: product-owner
12
+ role: product-owner
13
+ wip: 1
14
+ - name: dev-lead
15
+ role: dev-lead
16
+ wip: 1
17
+ - name: developer
18
+ role: developer
19
+ wip: 1
20
+ - name: qa
21
+ role: qa
22
+ wip: 1
23
+ role_wip:
24
+ developer: 2
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: developer
3
+ label: Developer
4
+ job: Build the accepted change on your own
5
+ ask_first: false
6
+ pinned: false
7
+ hidden: false
8
+ owns:
9
+ - the change pack
10
+ inputs:
11
+ - the accepted spec
12
+ outputs:
13
+ - the change pack
14
+ approvers:
15
+ - human
16
+ never:
17
+ - accept a spec
18
+ - generate a release
19
+ ask_human_when:
20
+ - the accepted spec does not say what to build
21
+ skills:
22
+ - implement one change pack
23
+ rules:
24
+ - stay inside the accepted spec
25
+ goals:
26
+ - a change the person can try
27
+ ---
28
+ One developer builds. The person accepts the spec.
@@ -0,0 +1,7 @@
1
+ branch: bot/{bot}/{change}
2
+ rooms:
3
+ commit: true
4
+ bots:
5
+ - name: developer
6
+ role: developer
7
+ wip: 1
@@ -0,0 +1,17 @@
1
+ # Plan
2
+
3
+ > **{{title}}** · `{{id}}`
4
+
5
+ ## Order
6
+
7
+ 1.
8
+
9
+ ## Owners
10
+
11
+ | Work | Role |
12
+ |------|------|
13
+ | | |
14
+
15
+ ## Risks
16
+
17
+ -
@@ -0,0 +1,11 @@
1
+ # Review
2
+
3
+ > **{{title}}** · `{{id}}`
4
+
5
+ ## Finding
6
+
7
+ -
8
+
9
+ ## Evidence
10
+
11
+ -
@@ -0,0 +1,13 @@
1
+ # Story
2
+
3
+ > **{{title}}** · `{{id}}`
4
+
5
+ ## S-001
6
+
7
+ As a person
8
+ I want
9
+ So that
10
+
11
+ ## Acceptance
12
+
13
+ - [ ]
@@ -0,0 +1,11 @@
1
+ # Task
2
+
3
+ > **{{title}}** · `{{id}}`
4
+
5
+ ## T-001
6
+
7
+ - [ ]
8
+
9
+ ## Done when
10
+
11
+ -
@@ -0,0 +1,153 @@
1
+ name: team-software
2
+ description: >
3
+ Software team — requirements, architecture, stories, plan, tasks,
4
+ implement, pull-request review, acceptance
5
+ version: 1
6
+ recommendation:
7
+ priority: 10
8
+ when:
9
+ keywords: [team-software]
10
+ stages:
11
+ - id: requirements
12
+ title: Requirements
13
+ summary: The short reading of what the person asked for
14
+ kind: standard
15
+ skippable: false
16
+ owner: product-manager
17
+ collaborates: [architect]
18
+ artifacts:
19
+ - id: requirements
20
+ path: requirements.md
21
+ template: requirements.md
22
+ required: true
23
+ gate:
24
+ type: hard
25
+ mode: human_approval
26
+ approvers: [human]
27
+ checklist:
28
+ - "The person accepted the reading"
29
+ agent_context:
30
+ instructions: |
31
+ Write the short reading in requirements.md. Do not accept the spec.
32
+ The person signs this gate.
33
+
34
+ - id: architecture
35
+ title: Architecture
36
+ summary: Module boundaries for this change
37
+ kind: standard
38
+ skippable: false
39
+ owner: architect
40
+ collaborates: [product-manager]
41
+ artifacts:
42
+ - id: architecture
43
+ path: architecture.md
44
+ template: greenfield-architecture.md
45
+ required: true
46
+ gate:
47
+ type: soft
48
+ approvers: [architect]
49
+
50
+ - id: stories
51
+ title: Stories
52
+ summary: One story file the product owner can ask about
53
+ kind: standard
54
+ skippable: false
55
+ owner: product-owner
56
+ collaborates: [dev-lead]
57
+ artifacts:
58
+ - id: story
59
+ path: stories/S-001.md
60
+ template: story.md
61
+ required: true
62
+ gate:
63
+ type: soft
64
+ approvers: [product-owner]
65
+
66
+ - id: plan
67
+ title: Plan
68
+ summary: How the work is split
69
+ kind: standard
70
+ skippable: false
71
+ owner: dev-lead
72
+ collaborates: [architect, developer]
73
+ artifacts:
74
+ - id: plan
75
+ path: plan.md
76
+ template: plan.md
77
+ required: true
78
+ gate:
79
+ type: soft
80
+ approvers: [dev-lead]
81
+
82
+ - id: tasks
83
+ title: Tasks
84
+ summary: One file per task
85
+ kind: standard
86
+ skippable: false
87
+ owner: dev-lead
88
+ collaborates: [developer]
89
+ artifacts:
90
+ - id: task
91
+ path: tasks/T-001.md
92
+ template: task.md
93
+ required: true
94
+ gate:
95
+ type: soft
96
+
97
+ - id: implement
98
+ title: Implement
99
+ summary: One item for each task file
100
+ kind: standard
101
+ skippable: false
102
+ owner: developer
103
+ items_from: tasks/T-*.md
104
+ artifacts: []
105
+ gate:
106
+ type: soft
107
+ agent_context:
108
+ instructions: |
109
+ When this stage starts, items.yaml has one row per tasks/T-*.md file.
110
+ Build those tasks. Do not accept a spec.
111
+
112
+ - id: pr_review
113
+ title: Pull request review
114
+ summary: Architect and dev lead review the change
115
+ kind: standard
116
+ skippable: false
117
+ owner: architect
118
+ collaborates: [dev-lead]
119
+ artifacts:
120
+ - id: review
121
+ path: reviews/R-001.md
122
+ template: review.md
123
+ required: true
124
+ gate:
125
+ type: soft
126
+ approvers: [architect, dev-lead]
127
+
128
+ - id: acceptance
129
+ title: Acceptance
130
+ summary: The person tries the change and keeps the final say
131
+ kind: standard
132
+ skippable: false
133
+ owner: product-owner
134
+ collaborates: [product-manager, architect]
135
+ artifacts:
136
+ - id: acceptance
137
+ path: acceptance.md
138
+ template: acceptance.md
139
+ required: true
140
+ gate:
141
+ type: hard
142
+ mode: human_approval
143
+ approvers: [human]
144
+ checklist:
145
+ - "The person recorded what they saw"
146
+ agent_context:
147
+ instructions: |
148
+ Write what the person can try. Do not record the QA result.
149
+ The person signs this gate.
150
+
151
+ on_complete:
152
+ archive: false
153
+ domain_sync: never
@@ -2,11 +2,14 @@ import {
2
2
  AGENT_INTEGRATIONS,
3
3
  AGENT_TARGET_OPTIONS,
4
4
  ALL_AGENT_TARGETS,
5
+ AgentInstallPreflightError,
5
6
  DEFAULT_INIT_INTEGRATION,
6
7
  PROTOCOL_MD,
7
8
  SDD_AGENT_ROLES,
8
9
  agentHostPaths,
9
10
  agentKickoffMessage,
11
+ assertAgentInstallable,
12
+ describeFsError,
10
13
  getIntegration,
11
14
  installAgentIntegration,
12
15
  installAgentIntegrations,
@@ -15,27 +18,31 @@ import {
15
18
  optionForTarget,
16
19
  parseAgentTargets,
17
20
  parseIntegration,
21
+ planAgentIntegration,
18
22
  refreshActiveAgentContext,
19
23
  removeOtherAgentHosts,
24
+ removeOtherAgentHostsDetailed,
25
+ renderAgentsMd,
26
+ renderProtocolMd,
20
27
  renderThinAgent,
21
28
  writeAgentHandoff
22
- } from "./chunk-P3N67UEZ.js";
23
- import "./chunk-R5WQN4HA.js";
24
- import "./chunk-WHDG6OTG.js";
25
- import "./chunk-A752UVPF.js";
26
- import "./chunk-67AUAGNV.js";
29
+ } from "./chunk-26YG6A4M.js";
30
+ import "./chunk-TGRV6WGS.js";
31
+ import "./chunk-HG7TPW5V.js";
27
32
  import "./chunk-MHODNFIL.js";
28
- import "./chunk-7MJYPJMR.js";
29
- import "./chunk-EPFURATC.js";
33
+ import "./chunk-O5SP6X5R.js";
30
34
  export {
31
35
  AGENT_INTEGRATIONS,
32
36
  AGENT_TARGET_OPTIONS,
33
37
  ALL_AGENT_TARGETS,
38
+ AgentInstallPreflightError,
34
39
  DEFAULT_INIT_INTEGRATION,
35
40
  PROTOCOL_MD,
36
41
  SDD_AGENT_ROLES,
37
42
  agentHostPaths,
38
43
  agentKickoffMessage,
44
+ assertAgentInstallable,
45
+ describeFsError,
39
46
  getIntegration,
40
47
  installAgentIntegration,
41
48
  installAgentIntegrations,
@@ -44,8 +51,12 @@ export {
44
51
  optionForTarget,
45
52
  parseAgentTargets,
46
53
  parseIntegration,
54
+ planAgentIntegration,
47
55
  refreshActiveAgentContext,
48
56
  removeOtherAgentHosts,
57
+ removeOtherAgentHostsDetailed,
58
+ renderAgentsMd,
59
+ renderProtocolMd,
49
60
  renderThinAgent,
50
61
  writeAgentHandoff
51
62
  };
@@ -7,10 +7,8 @@ import {
7
7
  resolveChangeId,
8
8
  saveChangeMeta,
9
9
  setActiveChange
10
- } from "./chunk-A752UVPF.js";
11
- import "./chunk-67AUAGNV.js";
12
- import "./chunk-7MJYPJMR.js";
13
- import "./chunk-EPFURATC.js";
10
+ } from "./chunk-HG7TPW5V.js";
11
+ import "./chunk-O5SP6X5R.js";
14
12
  export {
15
13
  buildContext,
16
14
  clearActiveIf,