@weave-tools/weave-it 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +868 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.js +4538 -0
- package/dist/cli.js.map +1 -0
- package/package.json +65 -0
- package/templates/opencode/commands/weave-architect.md +7 -0
- package/templates/opencode/commands/weave-capture.md +7 -0
- package/templates/opencode/commands/weave-clarify.md +7 -0
- package/templates/opencode/commands/weave-execute.md +7 -0
- package/templates/opencode/commands/weave-explore.md +7 -0
- package/templates/opencode/commands/weave-issues.md +7 -0
- package/templates/opencode/commands/weave-knowledge.md +7 -0
- package/templates/opencode/commands/weave-new.md +7 -0
- package/templates/opencode/commands/weave-next.md +7 -0
- package/templates/opencode/commands/weave-prd.md +7 -0
- package/templates/opencode/commands/weave-prepare.md +7 -0
- package/templates/skills/weave-architect/SKILL.md +291 -0
- package/templates/skills/weave-architect/api-contract-template.md +21 -0
- package/templates/skills/weave-architect/frontend-backend-template.md +21 -0
- package/templates/skills/weave-architect/index-template.md +24 -0
- package/templates/skills/weave-architect/schema-template.md +21 -0
- package/templates/skills/weave-capture/SKILL.md +398 -0
- package/templates/skills/weave-clarify/SKILL.md +513 -0
- package/templates/skills/weave-execute/SKILL.md +215 -0
- package/templates/skills/weave-explore/SKILL.md +434 -0
- package/templates/skills/weave-issues/SKILL.md +441 -0
- package/templates/skills/weave-knowledge/SKILL.md +161 -0
- package/templates/skills/weave-knowledge/knowledge-templates.md +63 -0
- package/templates/skills/weave-new/SKILL.md +76 -0
- package/templates/skills/weave-next/SKILL.md +216 -0
- package/templates/skills/weave-prd/SKILL.md +419 -0
- package/templates/skills/weave-prd/prd-template.md +186 -0
- package/templates/skills/weave-prepare/SKILL.md +94 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weave-execute
|
|
3
|
+
description: Execute selected local Weave tasks for an active change by preparing branches, implementing tasks, running verification, and updating tasks.md evidence without committing, pushing, or opening PRs.
|
|
4
|
+
last_changed_in: 0.1.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Weave Execute
|
|
8
|
+
|
|
9
|
+
Use this skill when the user wants an agent to execute selected `T#` tasks in an active Weave change.
|
|
10
|
+
|
|
11
|
+
Execution means: resolve the active change, read `tasks.md`, resolve the user's selector, expand dependencies from `Blocked by:`, run prepare for the final task set, implement each eligible task, run appropriate verification, update local task evidence, and summarize outcomes.
|
|
12
|
+
|
|
13
|
+
Execution is local-only. It must not commit, push, open pull requests, create remote branches, stash, discard changes, force-checkout, publish external issue updates, or create a separate execution run-history artifact.
|
|
14
|
+
|
|
15
|
+
# Silent Weave Command Output
|
|
16
|
+
|
|
17
|
+
Weave skills run Weave CLI commands silently by default. Use command results
|
|
18
|
+
as internal context, not response content.
|
|
19
|
+
|
|
20
|
+
Do not show raw stdout, JSON payloads, command echoes, lifecycle payloads,
|
|
21
|
+
internal state-write confirmations, or verbatim notice text unless the user
|
|
22
|
+
explicitly asks for diagnostic output.
|
|
23
|
+
|
|
24
|
+
Surface only information that changes what the user or agent should do next:
|
|
25
|
+
blockers, failures, missing relevant repos, branch or task outcomes,
|
|
26
|
+
lifecycle failures, package-outdated notices, relevant outdated or modified
|
|
27
|
+
skills, and user-required actions.
|
|
28
|
+
|
|
29
|
+
Notice handling:
|
|
30
|
+
|
|
31
|
+
- `package_outdated`: show only when present. Say exactly:
|
|
32
|
+
`A newer Weave version is available. Run \`weave status\` for details, then upgrade Weave when convenient.`
|
|
33
|
+
- `skills_outdated`: suppress unrelated skills. If the invoked skill is outdated, say:
|
|
34
|
+
`The installed \`<skill-name>\` skill appears older than the bundled template. Run \`weave status\` for details, then \`weave agent update --all\` when you want to refresh installed skills.`
|
|
35
|
+
- `skills_outdated`: if multiple skills used in this workflow are outdated, say:
|
|
36
|
+
`Some installed skills used in this workflow appear older than the bundled templates: \`<skill-a>\`, \`<skill-b>\`. Run \`weave status\` for details, then \`weave agent update --all\` when you want to refresh them.`
|
|
37
|
+
- `skills_modified`: suppress unless the invoked skill is modified locally or the user is asking about skill updates. If the invoked skill is modified, say:
|
|
38
|
+
`The installed \`<skill-name>\` skill has local edits, so its behavior may differ from the bundled template. Run \`weave status\` or \`weave agent diff\` if you want to inspect the difference.`
|
|
39
|
+
- `skills_modified`: if the user asks to update skills and installed skills have local edits, say:
|
|
40
|
+
`Some installed skills have local edits. \`weave agent update\` may skip or protect them; run \`weave status\` or \`weave agent diff\` before updating.`
|
|
41
|
+
|
|
42
|
+
Do not say `Notices: ...`, `The command returned notices`, raw
|
|
43
|
+
`notices[].message`, full notice JSON, or full skill lists unless the user
|
|
44
|
+
asks for diagnostics.
|
|
45
|
+
|
|
46
|
+
# Resolve Context
|
|
47
|
+
|
|
48
|
+
Start with Tier 1 context commands:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
weave workspace --json
|
|
52
|
+
weave change current --json
|
|
53
|
+
weave change status --json
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If there is no active change, stop and say that the user needs `weave change new` or `weave change switch` first.
|
|
57
|
+
|
|
58
|
+
Read the active change's task artifact:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
wiki/changes/<change-id>/tasks.md
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
If `tasks.md` is missing, stop and tell the user to run `weave-issues` first.
|
|
65
|
+
|
|
66
|
+
# Selector Handling
|
|
67
|
+
|
|
68
|
+
Resolve the user's selector before preparing or implementing anything.
|
|
69
|
+
|
|
70
|
+
Supported invocation shapes:
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
/weave-execute
|
|
74
|
+
/weave-execute T3
|
|
75
|
+
/weave-execute T1 T3 T7
|
|
76
|
+
/weave-execute backend
|
|
77
|
+
/weave-execute all
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Map user input as follows:
|
|
81
|
+
|
|
82
|
+
- `all` -> all executable `T#` tasks in the active `tasks.md`
|
|
83
|
+
- Task ids such as `T1` or `T1 T3` -> those explicit task ids
|
|
84
|
+
- A single non-task, non-`all` value such as `backend` -> tasks whose `Scope` matches that value
|
|
85
|
+
|
|
86
|
+
If invoked without arguments, ask:
|
|
87
|
+
|
|
88
|
+
```text
|
|
89
|
+
What should I execute: all tasks, a scope like backend, or specific task ids like T1 T3?
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
When asking, derive available examples from `tasks.md`: include `all`, available `Scope` values, and available `T#` task ids. Do not default to `all`.
|
|
93
|
+
|
|
94
|
+
If no tasks match the selector, or an explicit task id is missing, stop before prepare or implementation.
|
|
95
|
+
|
|
96
|
+
# Task Eligibility
|
|
97
|
+
|
|
98
|
+
Only execute `T#` tasks. Do not execute `QF#` findings or `R#` refactor records directly.
|
|
99
|
+
|
|
100
|
+
Executable statuses:
|
|
101
|
+
|
|
102
|
+
- `todo`
|
|
103
|
+
- `in_progress`
|
|
104
|
+
- `not_tested`
|
|
105
|
+
|
|
106
|
+
Conditionally executable:
|
|
107
|
+
|
|
108
|
+
- `blocked` only after all listed `Blocked by:` dependencies are resolved in the same run or are already `done`
|
|
109
|
+
|
|
110
|
+
Skip by default:
|
|
111
|
+
|
|
112
|
+
- `done`
|
|
113
|
+
- `invalid`
|
|
114
|
+
|
|
115
|
+
# Dependency Ordering
|
|
116
|
+
|
|
117
|
+
Use `Blocked by:` as the source of dependency truth.
|
|
118
|
+
|
|
119
|
+
For explicit task id selectors, if a selected task depends on incomplete tasks outside the explicit selection, tell the user which blockers must be executed first and ask before expanding the run.
|
|
120
|
+
|
|
121
|
+
For scope and `all` selectors, automatically include required incomplete blocking tasks and execute them before dependent selected tasks.
|
|
122
|
+
|
|
123
|
+
Stop before prepare or implementation when:
|
|
124
|
+
|
|
125
|
+
- a dependency references a missing task id
|
|
126
|
+
- a dependency value is unclear and cannot be interpreted as `None` or `T#` ids
|
|
127
|
+
- dependencies form a cycle
|
|
128
|
+
|
|
129
|
+
If a task fails, continue independent later tasks. Skip downstream tasks whose dependencies failed, and summarize those skips at the end.
|
|
130
|
+
|
|
131
|
+
# Run Prepare Before Implementation
|
|
132
|
+
|
|
133
|
+
Run exactly one prepare command for the final selected task set before implementing anything.
|
|
134
|
+
|
|
135
|
+
Use the deterministic prepare CLI. The CLI owns branch readiness and `status.yml.execution` writes. Do not hand-edit `status.yml` and do not run git checkout commands yourself for this workflow.
|
|
136
|
+
|
|
137
|
+
Map the final selected tasks to prepare like this:
|
|
138
|
+
|
|
139
|
+
- all executable tasks selected from `all` -> `weave task prepare --all --json`
|
|
140
|
+
- explicit task ids -> `weave task prepare T1 T3 --json`
|
|
141
|
+
- scope selectors -> `weave task prepare --scope backend --json`
|
|
142
|
+
- dependency-expanded selections that no longer map cleanly to one scope -> `weave task prepare T1 T3 --json`
|
|
143
|
+
|
|
144
|
+
If the global `weave` command is unavailable in this repo, use the local development form:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
npm run dev -- task prepare <selector> --json
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
If prepare reports blockers, stop before implementation. State that no selected implementation repo branches were moved when the prepare result is blocked.
|
|
151
|
+
|
|
152
|
+
Dirty work already on the expected branch is allowed when prepare succeeds. Dirty work on another branch must be resolved by the user; do not stash, discard, or force-checkout it.
|
|
153
|
+
|
|
154
|
+
# Execute Tasks
|
|
155
|
+
|
|
156
|
+
Execute tasks in dependency order.
|
|
157
|
+
|
|
158
|
+
Before starting each task:
|
|
159
|
+
|
|
160
|
+
1. Patch only that task's active index row and detail `Status:` to `in_progress`.
|
|
161
|
+
2. Do not rewrite unrelated task wording or unrelated task sections.
|
|
162
|
+
3. For HITL tasks, pause for the required human input before proceeding. `/weave-execute all` includes HITL tasks, but still pauses before each HITL task.
|
|
163
|
+
|
|
164
|
+
During implementation:
|
|
165
|
+
|
|
166
|
+
- Use the task's `### What to build`, acceptance criteria, verification guidance, architecture refs, and repo anchors as the implementation contract.
|
|
167
|
+
- Keep edits scoped to the task.
|
|
168
|
+
- If the task exposes missing or ambiguous instructions, ask before guessing.
|
|
169
|
+
|
|
170
|
+
# Verification
|
|
171
|
+
|
|
172
|
+
Run task-listed checks first. Then run the smallest relevant broader checks when the task's blast radius warrants it.
|
|
173
|
+
|
|
174
|
+
Examples:
|
|
175
|
+
|
|
176
|
+
- a skill packaging change should usually run the relevant `tests/agent-skills.test.ts` tests
|
|
177
|
+
- a CLI or library behavior change should usually run targeted tests plus typecheck when practical
|
|
178
|
+
- final cross-cutting verification may run `npm run typecheck`, `npm test`, and `npm run build`
|
|
179
|
+
|
|
180
|
+
If verification cannot run, explain why. Mark a task `not_tested` only when implementation appears complete but verification could not be completed.
|
|
181
|
+
|
|
182
|
+
# Task Artifact Updates
|
|
183
|
+
|
|
184
|
+
Update `tasks.md` directly and narrowly.
|
|
185
|
+
|
|
186
|
+
Allowed updates for affected tasks:
|
|
187
|
+
|
|
188
|
+
- active task index status
|
|
189
|
+
- detail section `Status:`
|
|
190
|
+
- acceptance criteria checkboxes that were actually satisfied
|
|
191
|
+
- concise verification notes under the affected task's `### Verification` section
|
|
192
|
+
|
|
193
|
+
Status rules:
|
|
194
|
+
|
|
195
|
+
- set `in_progress` when work begins for a task
|
|
196
|
+
- set `done` only when implementation is complete and verification passes
|
|
197
|
+
- set `not_tested` when implementation appears complete but verification could not run
|
|
198
|
+
- leave or set `in_progress` with notes when implementation is incomplete or verification fails
|
|
199
|
+
- skip `done` and `invalid` tasks by default
|
|
200
|
+
|
|
201
|
+
Do not rewrite unrelated task wording, unrelated task sections, `QF#` entries, `R#` entries, invalid task history, or global task sections unless the selected task's own evidence requires a narrow local note.
|
|
202
|
+
|
|
203
|
+
# Final Summary
|
|
204
|
+
|
|
205
|
+
Finish with a grouped outcome summary:
|
|
206
|
+
|
|
207
|
+
- completed tasks
|
|
208
|
+
- tasks left `not_tested`
|
|
209
|
+
- failed or still-`in_progress` tasks
|
|
210
|
+
- skipped tasks, including `done`, `invalid`, or dependency-blocked tasks
|
|
211
|
+
- prepare blockers, if any
|
|
212
|
+
- verification commands or checks that passed, failed, or could not run
|
|
213
|
+
- next steps for anything unresolved
|
|
214
|
+
|
|
215
|
+
Always state that `/weave-execute` did not commit, push, open a PR, create remote branches, stash, discard changes, or publish external issue updates.
|
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weave-explore
|
|
3
|
+
description: Stress-test product requirements against the current system, workflows, and domain language. Use when refining PRDs, validating workflows, uncovering edge cases, clarifying ownership, or aligning new changes with existing product behavior.
|
|
4
|
+
last_changed_in: 0.1.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Weave Awareness
|
|
8
|
+
|
|
9
|
+
This is a Weave product exploration skill.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Plan Mode Guard
|
|
14
|
+
|
|
15
|
+
This skill must run in Plan Mode.
|
|
16
|
+
|
|
17
|
+
If the current environment exposes collaboration mode and it is not Plan Mode, stop immediately and say:
|
|
18
|
+
|
|
19
|
+
`This skill must run in Plan Mode. Switch to Plan Mode, then invoke weave-explore again.`
|
|
20
|
+
|
|
21
|
+
Do not inspect deeply, ask discovery questions, update artifacts, or continue work before this guard passes.
|
|
22
|
+
|
|
23
|
+
Static Weave skill content cannot automatically switch collaboration mode. The host, user, or developer layer must switch modes before this skill continues.
|
|
24
|
+
|
|
25
|
+
In Plan Mode, this skill commits the active artifact lane to local Weave session state via:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
weave artifact current set exploration --json
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
This writes local Weave session state only. It does not write repo-tracked artifacts and IS allowed in Plan Mode. Call it after resolving the active Weave change and before any other discovery work.
|
|
32
|
+
|
|
33
|
+
Do not write repo-tracked artifacts directly. Produce the plan, decisions, questions, or proposed artifact changes needed for the user to approve. Actual artifact writes happen only after the user exits Plan Mode and asks to implement the plan.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
Start by discovering the current Weave session:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
weave workspace --json
|
|
41
|
+
weave change current --json
|
|
42
|
+
weave artifact current set exploration --json
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Use the cwd-dispatched workspace or repo context returned by `weave workspace --json` as the exploration boundary. In workspace mode, the workspace root owns the change store and registered sub-repos in `repos[]` are implementation locations inside that single context. In repo mode, the active session's folders are the boundary. If there is no active Weave change, stop and ask the user to run `weave change new` or `weave change switch` before continuing.
|
|
46
|
+
|
|
47
|
+
# Workspace Repo Context Protocol
|
|
48
|
+
|
|
49
|
+
When `weave workspace --json` returns a `workspace` object, treat `workspace.path` as the single Weave change artifact root. Registered entries in `repos[]` are implementation and documentation locations inside that workspace, not separate artifact targets.
|
|
50
|
+
|
|
51
|
+
Do not create, read, or update change artifacts under each sub-repo by default. Durable change artifacts remain under:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
<workspace.path>/wiki/changes/<change-id>/
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Before deep inspection, build a lightweight repo context map from `repos[]`:
|
|
58
|
+
|
|
59
|
+
- repo id
|
|
60
|
+
- repo path
|
|
61
|
+
- repo kind
|
|
62
|
+
- remote, when present
|
|
63
|
+
- whether the repo appears relevant to the current user request
|
|
64
|
+
- docs and knowledge surfaces present, such as `README.md`, `CONTEXT.md`, `CONTEXT-MAP.md`, `docs/`, `docs/adr/`, `adr/`, `wiki/knowledge/`, `wiki/changes/`, `specs/`
|
|
65
|
+
- obvious code/test surfaces that may verify current behavior
|
|
66
|
+
|
|
67
|
+
Lightly inventory all registered repos. Deeply inspect only repos that appear relevant from the user's request, active change artifacts, repo names/kinds, docs, knowledge, prior changes, or code references.
|
|
68
|
+
|
|
69
|
+
Prefer current docs, knowledge specs, ADRs, and repo-local Weave wiki content before reading implementation code. Use code and tests to verify important claims from docs or memory.
|
|
70
|
+
|
|
71
|
+
If a repo is skipped, keep the reason simple: unrelated name/kind, no matching docs, no matching code references, or out of scope for the current question.
|
|
72
|
+
|
|
73
|
+
When presenting findings, include a short context note:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
Context loaded:
|
|
77
|
+
- Workspace artifact root: <path>
|
|
78
|
+
- Repos inspected: <repo ids>
|
|
79
|
+
- Repo docs/knowledge read: <paths>
|
|
80
|
+
- Code/test anchors read: <paths>
|
|
81
|
+
- Repos skipped: <repo id> (<reason>)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Do not exhaustively scan every repo unless the user explicitly asks for a workspace-wide audit.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
For each resolved context, inspect Weave knowledge first when present:
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
wiki/knowledge/index.md
|
|
92
|
+
wiki/knowledge/README.md
|
|
93
|
+
wiki/knowledge/domains/**/index.md
|
|
94
|
+
wiki/knowledge/domains/**/features/**/behavior.md
|
|
95
|
+
wiki/knowledge/domains/**/domain-wide/**
|
|
96
|
+
wiki/knowledge/shared/**/behavior.md
|
|
97
|
+
wiki/knowledge/**/source-map.md
|
|
98
|
+
wiki/changes/
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Use `wiki/knowledge/` as current product/domain context.
|
|
102
|
+
|
|
103
|
+
Use `wiki/changes/` as historical or in-progress change context.
|
|
104
|
+
|
|
105
|
+
If a relevant change folder exists, read the applicable change artifacts:
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
exploration.md
|
|
109
|
+
prd.md
|
|
110
|
+
sessions/*-exploration.md
|
|
111
|
+
decisions.md
|
|
112
|
+
contracts.md
|
|
113
|
+
status.yml
|
|
114
|
+
handoff.md
|
|
115
|
+
implementation.md
|
|
116
|
+
tasks.md
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
In workspace mode there is one change context: the workspace root. In repo mode, do not assume every session folder is equally relevant; identify which contexts appear relevant and why.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
# Resume Context
|
|
124
|
+
|
|
125
|
+
`weave-explore` means enter or resume exploration for the active change.
|
|
126
|
+
|
|
127
|
+
When an active change already has exploration context, resume before asking new discovery questions:
|
|
128
|
+
|
|
129
|
+
1. Read `wiki/changes/<change-id>/exploration.md` first. Treat the live artifact as canonical current truth.
|
|
130
|
+
2. Read relevant `wiki/changes/<change-id>/sessions/*-exploration.md` files newest-first.
|
|
131
|
+
3. Prioritize the latest `## Next Resume Point` when deciding what to ask or examine next.
|
|
132
|
+
4. Use older exploration session files only when needed for rationale, unresolved points, user preferences, or agent recommendations.
|
|
133
|
+
5. If session notes conflict with the live artifact, prefer the live artifact unless the latest session records an explicit newer user decision.
|
|
134
|
+
6. If the user gives an explicit direction, follow it over the stored resume point.
|
|
135
|
+
|
|
136
|
+
At the start of a resumed exploration, briefly state what was loaded:
|
|
137
|
+
|
|
138
|
+
```text
|
|
139
|
+
Resuming exploration for <change-id>.
|
|
140
|
+
Loaded exploration.md and <N> exploration session note(s).
|
|
141
|
+
Latest resume point: <summary>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
If no useful prior exploration content or session notes exist, start normal exploration.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
# Purpose
|
|
149
|
+
|
|
150
|
+
This skill helps refine product requirements by interrogating workflows, domain language, permissions, lifecycle behavior, operational expectations, and edge cases.
|
|
151
|
+
|
|
152
|
+
The goal is to clarify:
|
|
153
|
+
- what the system should do
|
|
154
|
+
- who experiences it
|
|
155
|
+
- how it behaves in real scenarios
|
|
156
|
+
- how it fits into the existing product model
|
|
157
|
+
|
|
158
|
+
This is a product discovery and requirement clarification exercise - not an architecture review.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
# Core Behavior
|
|
163
|
+
|
|
164
|
+
Interview the user relentlessly about the product behavior until a shared understanding is reached.
|
|
165
|
+
|
|
166
|
+
Ask questions one at a time and wait for the user's response before continuing.
|
|
167
|
+
|
|
168
|
+
For each question:
|
|
169
|
+
- explain why the question matters
|
|
170
|
+
- provide a likely/default recommendation
|
|
171
|
+
- explain implications of alternative choices
|
|
172
|
+
- keep the discussion grounded in user and business behavior
|
|
173
|
+
- avoid implementation details unless explicitly requested
|
|
174
|
+
|
|
175
|
+
Prefer:
|
|
176
|
+
- concrete scenarios
|
|
177
|
+
- user journeys
|
|
178
|
+
- lifecycle transitions
|
|
179
|
+
- ownership clarification
|
|
180
|
+
- operational edge cases
|
|
181
|
+
|
|
182
|
+
Avoid:
|
|
183
|
+
- infrastructure discussions
|
|
184
|
+
- database choices
|
|
185
|
+
- eventing strategies
|
|
186
|
+
- APIs
|
|
187
|
+
- storage design
|
|
188
|
+
- deployment architecture
|
|
189
|
+
- framework discussions
|
|
190
|
+
|
|
191
|
+
unless the user explicitly asks for technical design.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
# Discovery Order
|
|
196
|
+
|
|
197
|
+
Resolve questions in this order:
|
|
198
|
+
|
|
199
|
+
1. Domain language
|
|
200
|
+
2. Users, actors, and roles
|
|
201
|
+
3. User workflows
|
|
202
|
+
4. Permissions and admin controls
|
|
203
|
+
5. State transitions and lifecycle rules
|
|
204
|
+
6. Failure cases and edge cases
|
|
205
|
+
7. Notifications and visibility
|
|
206
|
+
8. Operational expectations
|
|
207
|
+
9. Rollout flags, configuration, rollout scope, and migration concerns
|
|
208
|
+
10. Technical implications (only if required)
|
|
209
|
+
|
|
210
|
+
Do not jump into technical implementation prematurely.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
# Technical Boundary
|
|
215
|
+
|
|
216
|
+
You may inspect the codebase to:
|
|
217
|
+
- understand existing workflows
|
|
218
|
+
- identify terminology
|
|
219
|
+
- discover current constraints
|
|
220
|
+
- detect contradictions
|
|
221
|
+
- understand current product behavior
|
|
222
|
+
- uncover hidden assumptions
|
|
223
|
+
|
|
224
|
+
Use the codebase to anchor the conversation in reality.
|
|
225
|
+
|
|
226
|
+
But do NOT ask users to choose:
|
|
227
|
+
- databases
|
|
228
|
+
- queues
|
|
229
|
+
- event buses
|
|
230
|
+
- consistency models
|
|
231
|
+
- storage engines
|
|
232
|
+
- deployment patterns
|
|
233
|
+
- API styles
|
|
234
|
+
- frameworks
|
|
235
|
+
|
|
236
|
+
unless:
|
|
237
|
+
1. the user explicitly requests technical design
|
|
238
|
+
2. or the decision materially changes product behavior, compliance, or operational guarantees
|
|
239
|
+
|
|
240
|
+
If a technical concern emerges:
|
|
241
|
+
- capture it as a technical implication
|
|
242
|
+
- do not force resolution immediately
|
|
243
|
+
- continue product discovery first
|
|
244
|
+
|
|
245
|
+
Translate technical concerns into behavioral language whenever possible.
|
|
246
|
+
|
|
247
|
+
Example:
|
|
248
|
+
Instead of asking:
|
|
249
|
+
> "Should this be eventually consistent?"
|
|
250
|
+
|
|
251
|
+
Ask:
|
|
252
|
+
> "Is it acceptable if users see updates a few seconds later?"
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
# Sub-Repo Product Discovery
|
|
257
|
+
|
|
258
|
+
In workspace mode, use registered repos to understand existing product behavior across the workspace.
|
|
259
|
+
|
|
260
|
+
For relevant repos, prioritize reading:
|
|
261
|
+
|
|
262
|
+
```text
|
|
263
|
+
wiki/knowledge/**
|
|
264
|
+
wiki/changes/**
|
|
265
|
+
README.md
|
|
266
|
+
CONTEXT.md
|
|
267
|
+
CONTEXT-MAP.md
|
|
268
|
+
docs/**
|
|
269
|
+
docs/adr/**
|
|
270
|
+
adr/**
|
|
271
|
+
specs/**
|
|
272
|
+
tests/**
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Use sub-repo context to discover:
|
|
276
|
+
|
|
277
|
+
- domain language and user-facing terminology
|
|
278
|
+
- actors, roles, permissions, and ownership boundaries
|
|
279
|
+
- existing workflows and lifecycle states
|
|
280
|
+
- configuration or rollout behavior that changes user experience
|
|
281
|
+
- failure states, edge cases, and operational expectations
|
|
282
|
+
- prior changes or specs that constrain the current exploration
|
|
283
|
+
|
|
284
|
+
Read implementation code only as needed to verify current behavior, locate hidden assumptions, or resolve contradictions between docs and reality.
|
|
285
|
+
|
|
286
|
+
Translate technical findings into product behavior questions. Do not ask the user to choose implementation details unless the choice materially changes user behavior, compliance, visibility, permissions, rollout, or operational guarantees.
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
# Scenario-Driven Discovery
|
|
291
|
+
|
|
292
|
+
Prefer concrete scenarios over abstractions.
|
|
293
|
+
|
|
294
|
+
Instead of:
|
|
295
|
+
> "Can approvals be revoked?"
|
|
296
|
+
|
|
297
|
+
Ask:
|
|
298
|
+
> "Suppose compensation is finalized and a manager reopens the review afterward - what should happen?"
|
|
299
|
+
|
|
300
|
+
Use scenarios to:
|
|
301
|
+
- expose hidden assumptions
|
|
302
|
+
- clarify ownership
|
|
303
|
+
- test lifecycle boundaries
|
|
304
|
+
- uncover operational risks
|
|
305
|
+
- reveal conflicting expectations
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
# Domain Awareness
|
|
310
|
+
|
|
311
|
+
During codebase exploration, also look for existing documentation. Prefer Weave knowledge when present, and use existing repo documentation as additional context.
|
|
312
|
+
|
|
313
|
+
## File structure
|
|
314
|
+
|
|
315
|
+
Most repos have a single context:
|
|
316
|
+
|
|
317
|
+
```text
|
|
318
|
+
/
|
|
319
|
+
|-- CONTEXT.md
|
|
320
|
+
|-- docs/
|
|
321
|
+
| `-- adr/
|
|
322
|
+
`-- src/
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
Some repos have multiple contexts:
|
|
326
|
+
|
|
327
|
+
```text
|
|
328
|
+
/
|
|
329
|
+
|-- CONTEXT-MAP.md
|
|
330
|
+
|-- docs/
|
|
331
|
+
| `-- adr/
|
|
332
|
+
`-- src/
|
|
333
|
+
|-- ordering/
|
|
334
|
+
| |-- CONTEXT.md
|
|
335
|
+
| `-- docs/adr/
|
|
336
|
+
`-- billing/
|
|
337
|
+
|-- CONTEXT.md
|
|
338
|
+
`-- docs/adr/
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
Use existing documentation to:
|
|
342
|
+
- align terminology
|
|
343
|
+
- avoid duplicate concepts
|
|
344
|
+
- detect conflicting meanings
|
|
345
|
+
- understand established workflows
|
|
346
|
+
- reconcile Weave knowledge with repo-local docs when they conflict
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
# PM-Safe Code Exploration
|
|
351
|
+
|
|
352
|
+
Code inspection is allowed when needed to verify current product behavior.
|
|
353
|
+
|
|
354
|
+
However, do not show code snippets, function internals, database schemas, API details, or infrastructure details unless the user explicitly asks.
|
|
355
|
+
|
|
356
|
+
Translate technical findings into product language.
|
|
357
|
+
|
|
358
|
+
Good:
|
|
359
|
+
> "Today, the system appears to finalize the whole review at once. It does not currently support partial approvals."
|
|
360
|
+
|
|
361
|
+
Avoid unless asked:
|
|
362
|
+
> "The `finalizeReview()` function calls `updateMany()` on all review items."
|
|
363
|
+
|
|
364
|
+
If technical uncertainty matters, surface it as a product-relevant implication:
|
|
365
|
+
> "There may be technical coupling here, but the product question is whether partial approval should exist at all."
|
|
366
|
+
|
|
367
|
+
Keep technical implications separate from product decisions.
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
# Glossary Discipline
|
|
372
|
+
|
|
373
|
+
Challenge terminology aggressively.
|
|
374
|
+
|
|
375
|
+
If the user uses a term that conflicts with the existing language, call it out immediately.
|
|
376
|
+
|
|
377
|
+
Example:
|
|
378
|
+
> "Your glossary defines 'submission' differently from how you're using it here - which meaning should we standardize on?"
|
|
379
|
+
|
|
380
|
+
Sharpen vague language.
|
|
381
|
+
|
|
382
|
+
Replace overloaded terms with precise domain concepts.
|
|
383
|
+
|
|
384
|
+
Example:
|
|
385
|
+
> "When you say 'manager', do you mean the direct manager, calibration owner, or workflow approver?"
|
|
386
|
+
|
|
387
|
+
Do not allow ambiguous terminology to survive.
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
# Cross-Reference With Reality
|
|
392
|
+
|
|
393
|
+
When the user describes behavior:
|
|
394
|
+
- verify whether the existing system already behaves differently
|
|
395
|
+
- inspect workflows if necessary
|
|
396
|
+
- surface contradictions explicitly
|
|
397
|
+
|
|
398
|
+
Example:
|
|
399
|
+
> "You mentioned partial approvals are allowed, but the current workflow finalizes the entire review together. Which behavior should be authoritative?"
|
|
400
|
+
|
|
401
|
+
Treat the current product behavior as an important input - but not necessarily the correct future behavior.
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
# Silent Weave Command Output
|
|
406
|
+
|
|
407
|
+
Weave skills run Weave CLI commands silently by default. Use command results
|
|
408
|
+
as internal context, not response content.
|
|
409
|
+
|
|
410
|
+
Do not show raw stdout, JSON payloads, command echoes, lifecycle payloads,
|
|
411
|
+
internal state-write confirmations, or verbatim notice text unless the user
|
|
412
|
+
explicitly asks for diagnostic output.
|
|
413
|
+
|
|
414
|
+
Surface only information that changes what the user or agent should do next:
|
|
415
|
+
blockers, failures, missing relevant repos, branch or task outcomes,
|
|
416
|
+
lifecycle failures, package-outdated notices, relevant outdated or modified
|
|
417
|
+
skills, and user-required actions.
|
|
418
|
+
|
|
419
|
+
Notice handling:
|
|
420
|
+
|
|
421
|
+
- `package_outdated`: show only when present. Say exactly:
|
|
422
|
+
`A newer Weave version is available. Run \`weave status\` for details, then upgrade Weave when convenient.`
|
|
423
|
+
- `skills_outdated`: suppress unrelated skills. If the invoked skill is outdated, say:
|
|
424
|
+
`The installed \`<skill-name>\` skill appears older than the bundled template. Run \`weave status\` for details, then \`weave agent update --all\` when you want to refresh installed skills.`
|
|
425
|
+
- `skills_outdated`: if multiple skills used in this workflow are outdated, say:
|
|
426
|
+
`Some installed skills used in this workflow appear older than the bundled templates: \`<skill-a>\`, \`<skill-b>\`. Run \`weave status\` for details, then \`weave agent update --all\` when you want to refresh them.`
|
|
427
|
+
- `skills_modified`: suppress unless the invoked skill is modified locally or the user is asking about skill updates. If the invoked skill is modified, say:
|
|
428
|
+
`The installed \`<skill-name>\` skill has local edits, so its behavior may differ from the bundled template. Run \`weave status\` or \`weave agent diff\` if you want to inspect the difference.`
|
|
429
|
+
- `skills_modified`: if the user asks to update skills and installed skills have local edits, say:
|
|
430
|
+
`Some installed skills have local edits. \`weave agent update\` may skip or protect them; run \`weave status\` or \`weave agent diff\` before updating.`
|
|
431
|
+
|
|
432
|
+
Do not say `Notices: ...`, `The command returned notices`, raw
|
|
433
|
+
`notices[].message`, full notice JSON, or full skill lists unless the user
|
|
434
|
+
asks for diagnostics.
|