@use-the-fork/spindle 0.0.2 → 0.2.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/build/Assets/Blueprints/Catalog.js +19 -9
- package/build/Assets/Blueprints/agents/sdd-implementer.agent.md +6 -6
- package/build/Assets/Blueprints/agents/sdd-orchestrator.agent.md +4 -7
- package/build/Assets/Blueprints/skills/author-agent/SKILL.md +9 -8
- package/build/Assets/Blueprints/skills/author-instruction/SKILL.md +9 -8
- package/build/Assets/Blueprints/skills/author-skill/SKILL.md +9 -8
- package/build/Assets/Blueprints/skills/grill/SKILL.md +3 -3
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/SKILL.md +16 -12
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/assets/implementer-prompt.md +2 -2
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/corrective-rounds.md +1 -1
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/example-workflow.md +14 -12
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/full-spec.md +43 -23
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/review-inputs.md +7 -7
- package/build/Assets/Blueprints/skills/int-testing-agent-guidance/SKILL.md +2 -2
- package/build/Assets/Blueprints/skills/int-writing-skills/SKILL.md +2 -2
- package/build/Assets/Blueprints/skills/int-writing-skills/references/testing-skills.md +2 -2
- package/build/Assets/Blueprints/skills/{asd-ste100 → ref-asd-ste100}/SKILL.md +1 -1
- package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/SKILL.md +38 -0
- package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/concurrency-and-pools.md +73 -0
- package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/connectors.md +99 -0
- package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/data-transfer-objects.md +104 -0
- package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/handling-failures.md +95 -0
- package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/requests.md +111 -0
- package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/responses.md +56 -0
- package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/sending-requests.md +42 -0
- package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/testing.md +119 -0
- package/build/Assets/Blueprints/skills/{author-design → sdd-author-design}/SKILL.md +12 -4
- package/build/Assets/Blueprints/skills/{grill-design → sdd-grill-design}/SKILL.md +1 -1
- package/build/Assets/Blueprints/skills/{implement-spec → sdd-implement-spec}/SKILL.md +6 -8
- package/build/Assets/Blueprints/skills/{to-spec → sdd-to-spec}/SKILL.md +3 -3
- package/build/Assets/Blueprints/skills/{to-tickets → sdd-to-tickets}/SKILL.md +3 -3
- package/build/Assets/Blueprints/skills/{setup-project → spindle-project-setup}/SKILL.md +4 -4
- package/build/Assets/Blueprints/skills/{update-tooling → spindle-tooling-update}/SKILL.md +5 -5
- package/build/Assets/Templates/project/copilot-instructions.md +3 -9
- package/build/Assets/Templates/project/ticket-tracker.md +14 -6
- package/build/BlueprintManagement/Commands/Prompts.js +1 -1
- package/build/SubagentDrivenDevelopment/Commands/ChecksRecordCommand.js +27 -5
- package/build/SubagentDrivenDevelopment/Commands/ChecksRequireCommand.js +31 -7
- package/build/SubagentDrivenDevelopment/Commands/CorrectCommand.js +0 -1
- package/build/SubagentDrivenDevelopment/Commands/FinishCommand.js +2 -1
- package/build/SubagentDrivenDevelopment/Commands/ImplementCommand.js +2 -0
- package/build/SubagentDrivenDevelopment/Commands/{ClaimCommand.js → IntegrateCommand.js} +8 -7
- package/build/SubagentDrivenDevelopment/Commands/ReviewCommand.js +9 -9
- package/build/SubagentDrivenDevelopment/Commands/StartCommand.js +23 -0
- package/build/SubagentDrivenDevelopment/Commands/StatusCommand.js +5 -0
- package/build/SubagentDrivenDevelopment/Commands/groups.js +3 -2
- package/build/SubagentDrivenDevelopment/Evidence/GitEvidence.js +188 -37
- package/build/SubagentDrivenDevelopment/Models/Workflow.js +0 -2
- package/build/SubagentDrivenDevelopment/Persistence/AssignmentSchema.js +4 -0
- package/build/SubagentDrivenDevelopment/Persistence/CheckSchema.js +4 -13
- package/build/SubagentDrivenDevelopment/Persistence/LedgerRepository.js +66 -5
- package/build/SubagentDrivenDevelopment/Persistence/ProgressSchema.js +54 -4
- package/build/SubagentDrivenDevelopment/Persistence/ReviewSchema.js +4 -0
- package/build/SubagentDrivenDevelopment/Policies/AssignmentPolicy.js +0 -3
- package/build/SubagentDrivenDevelopment/Policies/CheckPolicy.js +6 -3
- package/build/SubagentDrivenDevelopment/Policies/ReadinessPolicy.js +16 -6
- package/build/SubagentDrivenDevelopment/Policies/ReviewPolicy.js +16 -2
- package/build/SubagentDrivenDevelopment/Policies/WorkflowPolicy.js +8 -8
- package/build/SubagentDrivenDevelopment/Services/AssignmentService.js +73 -51
- package/build/SubagentDrivenDevelopment/Services/ChecksService.js +376 -21
- package/build/SubagentDrivenDevelopment/Services/CorrectionService.js +83 -14
- package/build/SubagentDrivenDevelopment/Services/DeliveryCorrectionService.js +3 -7
- package/build/SubagentDrivenDevelopment/Services/DeliveryService.js +43 -38
- package/build/SubagentDrivenDevelopment/Services/FeatureCreationService.js +1 -1
- package/build/SubagentDrivenDevelopment/Services/FeatureFinalizationService.js +1202 -0
- package/build/SubagentDrivenDevelopment/Services/FeatureInspectionService.js +41 -49
- package/build/SubagentDrivenDevelopment/Services/FeatureWorktreeService.js +544 -0
- package/build/SubagentDrivenDevelopment/Services/ReadinessService.js +2 -2
- package/build/SubagentDrivenDevelopment/Services/ReviewService.js +39 -3
- package/build/SubagentDrivenDevelopment/Services/SubmissionService.js +4 -1
- package/build/SubagentDrivenDevelopment/Services/TicketIntegrationService.js +621 -0
- package/build/SubagentDrivenDevelopment/Services/TicketService.js +3 -0
- package/build/SubagentDrivenDevelopment/Services/TicketWorktreeService.js +317 -0
- package/build/SubagentDrivenDevelopment/Services/WorkflowRecordsCommitter.js +336 -0
- package/build/SubagentDrivenDevelopment/SubagentDrivenDevelopmentServiceProvider.js +18 -8
- package/build/TemplateRendering/Computed/ComputedVariableProviders.js +2 -0
- package/build/TemplateRendering/Computed/Providers/AuthoringFlowchartProvider.js +26 -0
- package/package.json +2 -2
- package/build/SubagentDrivenDevelopment/Services/IntegrationService.js +0 -258
- /package/build/Assets/Blueprints/skills/{asd-ste100 → ref-asd-ste100}/CREDITS.MD +0 -0
- /package/build/Assets/Blueprints/skills/{asd-ste100 → ref-asd-ste100}/examples/before-after.md +0 -0
- /package/build/Assets/Blueprints/skills/{asd-ste100 → ref-asd-ste100}/references/writing-rules.md +0 -0
|
@@ -21,7 +21,12 @@ export const blueprintCatalog = {
|
|
|
21
21
|
stacks: [],
|
|
22
22
|
canReview: true,
|
|
23
23
|
},
|
|
24
|
-
"sdd-task-reviewer": {
|
|
24
|
+
"sdd-task-reviewer": {
|
|
25
|
+
path: "sdd-task-reviewer.agent.md",
|
|
26
|
+
status: "active",
|
|
27
|
+
stacks: [],
|
|
28
|
+
canReview: true,
|
|
29
|
+
},
|
|
25
30
|
"shared-explore": { path: "shared-explore.agent.md", status: "active", stacks: [] },
|
|
26
31
|
"shared-r": { path: "shared-r.agent.md", status: "active", stacks: [] },
|
|
27
32
|
"shared-rw": { path: "shared-rw.agent.md", status: "active", stacks: [] },
|
|
@@ -60,16 +65,16 @@ export const blueprintCatalog = {
|
|
|
60
65
|
},
|
|
61
66
|
},
|
|
62
67
|
skills: {
|
|
63
|
-
"asd-ste100": { path: "asd-ste100/", status: "active", stacks: [] },
|
|
68
|
+
"ref-asd-ste100": { path: "ref-asd-ste100/", status: "active", stacks: [] },
|
|
64
69
|
"author-agent": { path: "author-agent/", status: "active", stacks: [] },
|
|
65
|
-
"author-design": { path: "author-design/", status: "active", stacks: [] },
|
|
70
|
+
"sdd-author-design": { path: "sdd-author-design/", status: "active", stacks: [] },
|
|
66
71
|
"author-instruction": { path: "author-instruction/", status: "active", stacks: [] },
|
|
67
72
|
"author-skill": { path: "author-skill/", status: "active", stacks: [] },
|
|
68
73
|
grill: { path: "grill/", status: "active", stacks: [] },
|
|
69
|
-
"grill-design": { path: "grill-design/", status: "active", stacks: [] },
|
|
74
|
+
"sdd-grill-design": { path: "sdd-grill-design/", status: "active", stacks: [] },
|
|
70
75
|
"grill-with-docs": { path: "grill-with-docs/", status: "active", stacks: [] },
|
|
71
76
|
implement: { path: "implement/", status: "active", stacks: [] },
|
|
72
|
-
"implement-spec": { path: "implement-spec/", status: "active", stacks: [] },
|
|
77
|
+
"sdd-implement-spec": { path: "sdd-implement-spec/", status: "active", stacks: [] },
|
|
73
78
|
"improve-codebase-architecture": {
|
|
74
79
|
path: "improve-codebase-architecture/",
|
|
75
80
|
status: "active",
|
|
@@ -102,9 +107,14 @@ export const blueprintCatalog = {
|
|
|
102
107
|
"int-writing-instruction": { path: "int-writing-instruction/", status: "active", stacks: [] },
|
|
103
108
|
"int-writing-skills": { path: "int-writing-skills/", status: "active", stacks: [] },
|
|
104
109
|
retrospective: { path: "retrospective/", status: "active", stacks: [] },
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
110
|
+
"ref-php-laravel-saloon-api-integrations": {
|
|
111
|
+
path: "ref-php-laravel-saloon-api-integrations/",
|
|
112
|
+
status: "active",
|
|
113
|
+
stacks: ["php-laravel"],
|
|
114
|
+
},
|
|
115
|
+
"sdd-to-spec": { path: "sdd-to-spec/", status: "active", stacks: [] },
|
|
116
|
+
"sdd-to-tickets": { path: "sdd-to-tickets/", status: "active", stacks: [] },
|
|
117
|
+
"spindle-project-setup": { path: "spindle-project-setup/", status: "active", stacks: [] },
|
|
118
|
+
"spindle-tooling-update": { path: "spindle-tooling-update/", status: "active", stacks: [] },
|
|
109
119
|
},
|
|
110
120
|
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-implementer
|
|
3
|
-
description: "Use when an orchestrator assigns one ticket or corrective round
|
|
3
|
+
description: "Use when an orchestrator assigns one ticket or corrective round in its isolated worktree."
|
|
4
4
|
tools: [read, search, edit, execute, read_skill, list_skills, skill]
|
|
5
5
|
user-invocable: false
|
|
6
6
|
agents: []
|
|
7
7
|
metadata:
|
|
8
8
|
spindle:
|
|
9
|
-
version: 1.
|
|
9
|
+
version: 1.5.0
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# SDD implementer
|
|
13
13
|
|
|
14
|
-
Implement one orchestrator-assigned ticket in
|
|
14
|
+
Implement one orchestrator-assigned ticket in its isolated worktree. The orchestrator owns dispatch, execution states, acceptance, and the ticket-wide checks. Other tickets may run concurrently in their own worktrees.
|
|
15
15
|
|
|
16
16
|
## Required assignment gate
|
|
17
17
|
|
|
@@ -20,14 +20,14 @@ Before entering the flowchart, loading implementation skills, inspecting the che
|
|
|
20
20
|
| Field | Required content |
|
|
21
21
|
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
22
22
|
| `TICKET_ID` | The single assigned ticket identifier. |
|
|
23
|
-
| `CHECKOUT` | Absolute path to the
|
|
23
|
+
| `CHECKOUT` | Absolute path to the assigned ticket worktree. |
|
|
24
24
|
| `ABSOLUTE_SOURCE_POINTERS` | Absolute paths to the canonical ticket, comments, and spec/brief. Explicitly identify any source that does not apply. |
|
|
25
25
|
| `CRITERIA_AND_SEAMS` | Acceptance criteria and confirmed test seams. |
|
|
26
26
|
| `DEPENDENCIES_AND_SNAPSHOT` | Completed dependencies and starting revision, including existing dirty/untracked changes. Explicitly state when there are no dependencies or changes. |
|
|
27
27
|
| `FILE_SCOPE` | Allowed code, test, and `.scratch` files. |
|
|
28
28
|
| `CHECKS_AND_DIRECTORY` | Approved project checks and their test working directory; identify any checks explicitly scheduled for this worker. |
|
|
29
29
|
| `PERMISSIONS` | Allowed actions, including explicit commit authorization or denial. |
|
|
30
|
-
| `REPORT_PATH` | Assigned
|
|
30
|
+
| `REPORT_PATH` | Assigned absolute report path in the canonical feature workspace, within `FILE_SCOPE`. |
|
|
31
31
|
| `MODE` | `INITIAL` or `CORRECTIVE`. |
|
|
32
32
|
|
|
33
33
|
Accept populated template labels or equivalent structured fields, including grouped headings with labeled values beneath them. Legacy `For a fix: NONE` selects initial mode; populated fix context selects corrective mode. For `CORRECTIVE`, read `references/implementer-corrections.md` in the `int-subagent-driven-dev` skill before accepting the gate. Initial assignments need no corrective fields or resource.
|
|
@@ -74,4 +74,4 @@ Save the report at `REPORT_PATH` with:
|
|
|
74
74
|
- For corrective mode, include the finding evidence required by `references/implementer-corrections.md` in the `int-subagent-driven-dev` skill.
|
|
75
75
|
- A concise hand-back summary; include commit identifiers only when authorized.
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
Write only the assigned report in the canonical feature workspace; the controller owns tracker updates. Failed or unavailable required implementer checks block completion. Return the report path and concise summary, then stop. If the assignment gate is incomplete, return the context request instead of writing a report.
|
|
@@ -4,10 +4,10 @@ description: "Use when coordinating feature tickets, implementation, review, and
|
|
|
4
4
|
argument-hint: The feature spec, tickets, constraints, and permissions.
|
|
5
5
|
user-invocable: true
|
|
6
6
|
tools: [vscode/askQuestions, execute, read, agent, edit, web, todo, read_skill, list_skills, skill]
|
|
7
|
-
agents: [sdd-implementer, sdd-reviewer, sdd-code-reviewer, shared-explore]
|
|
7
|
+
agents: [sdd-implementer, sdd-task-reviewer, sdd-reviewer, sdd-code-reviewer, shared-explore]
|
|
8
8
|
metadata:
|
|
9
9
|
spindle:
|
|
10
|
-
version: 1.
|
|
10
|
+
version: 1.4.0
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
You are the SDD orchestration agent for feature tickets and feature-level delivery. Follow the user's scope and permissions.
|
|
@@ -23,11 +23,8 @@ the current harness before dispatch. Catalog `canReview: true` establishes
|
|
|
23
23
|
eligibility only; it does not establish harness access. Never create an
|
|
24
24
|
automatic or default specialist batch.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
Feature completion requires every ticket closed, current passing feature checks
|
|
29
|
-
and reviews, and no unresolved delivery blockers. Use the normal Git workflow;
|
|
30
|
-
never ask the CLI to stage, commit, stash, discard, push, or publish.
|
|
26
|
+
Finish only after aggregate review, the final merge, and its declared checks.
|
|
27
|
+
Preserve worktrees and records whenever validation or cleanup is blocked.
|
|
31
28
|
|
|
32
29
|
<communication-style>
|
|
33
30
|
- **ALWAYS** think and respond in the same spoken language the prompt was written in.
|
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: author-agent
|
|
3
3
|
description: Create or revise a workspace custom agent from requirements.
|
|
4
|
-
argument-hint: "
|
|
4
|
+
argument-hint: "<agent idea or requirements>"
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
user-invocable: true
|
|
7
7
|
metadata:
|
|
8
8
|
spindle:
|
|
9
|
-
version: 1.0.
|
|
9
|
+
version: 1.0.2
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
Create or update a project agent in `.github/agents/<agent-name>.agent.md` based on the user's requirements.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Authoring flow
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
{{ computed.authoring_flowchart }}
|
|
17
|
+
|
|
18
|
+
Before grilling, read and consider only the `int-writing-for-agents` and `ref-asd-ste100` skills. Do not follow their workflows or load skills they reference yet.
|
|
19
|
+
|
|
20
|
+
After the user confirms shared understanding, load and follow:
|
|
17
21
|
|
|
18
22
|
- **REQUIRED:** `int-writing-agents`
|
|
19
|
-
- **REQUIRED:** `int-writing-for-agents`
|
|
20
23
|
- **REQUIRED:** `int-testing-agent-guidance`
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
When `--test` is present, also run the expanded testing workflow in `int-testing-agent-guidance`.
|
|
25
|
+
Apply the clarity rules from the `ref-asd-ste100` skill. Include a before/after table only when the user requests one. Run the core and expanded testing workflows in `int-testing-agent-guidance` for every authoring request.
|
|
25
26
|
|
|
26
27
|
Do not modify unrelated files. Report the skill changed and validation performed, including any blockers or unverified requirements.
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: author-instruction
|
|
3
3
|
description: Create or revise workspace-scoped Copilot instruction files from the user's requirements
|
|
4
|
-
argument-hint: "
|
|
4
|
+
argument-hint: "<instruction requirements>"
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
user-invocable: true
|
|
7
7
|
metadata:
|
|
8
8
|
spindle:
|
|
9
|
-
version: 1.0.
|
|
9
|
+
version: 1.0.2
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
Create or update a project instruction in `.github/instructions/**/*.instructions.md` based on the user's requirements.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Authoring flow
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
{{ computed.authoring_flowchart }}
|
|
17
|
+
|
|
18
|
+
Before grilling, read and consider only the `int-writing-for-agents` and `ref-asd-ste100` skills. Do not follow their workflows or load skills they reference yet.
|
|
19
|
+
|
|
20
|
+
After the user confirms shared understanding, load and follow:
|
|
17
21
|
|
|
18
22
|
- **REQUIRED:** `int-writing-instruction`
|
|
19
|
-
- **REQUIRED:** `int-writing-for-agents`
|
|
20
23
|
- **REQUIRED:** `int-testing-agent-guidance`
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
When `--test` is present, also run the expanded testing workflow in `int-testing-agent-guidance`.
|
|
25
|
+
Apply the clarity rules from the `ref-asd-ste100` skill. Include a before/after table only when the user requests one. Run the core and expanded testing workflows in `int-testing-agent-guidance` for every authoring request.
|
|
25
26
|
|
|
26
27
|
Verify any `applyTo` glob against concrete in-scope files and near misses; every intended file must match, and out-of-scope files must not.
|
|
27
28
|
|
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: author-skill
|
|
3
3
|
description: Create or update a project skill from the user's requirements
|
|
4
|
-
argument-hint: "
|
|
4
|
+
argument-hint: "<skill idea or requirements>"
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
user-invocable: true
|
|
7
7
|
metadata:
|
|
8
8
|
spindle:
|
|
9
|
-
version: 1.0.
|
|
9
|
+
version: 1.0.2
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
Create or update a project skill in `.github/skills/<skill-name>/SKILL.md` based on the user's requirements.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Authoring flow
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
{{ computed.authoring_flowchart }}
|
|
17
|
+
|
|
18
|
+
Before grilling, read and consider only the `int-writing-for-agents` and `ref-asd-ste100` skills. Do not follow their workflows or load skills they reference yet.
|
|
19
|
+
|
|
20
|
+
After the user confirms shared understanding, load and follow:
|
|
17
21
|
|
|
18
22
|
- **REQUIRED:** `int-writing-skills`
|
|
19
|
-
- **REQUIRED:** `int-writing-for-agents`
|
|
20
23
|
- **REQUIRED:** `int-testing-agent-guidance`
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
When `--test` is present, also run the expanded testing workflow in `int-testing-agent-guidance`.
|
|
25
|
+
Apply the clarity rules from the `ref-asd-ste100` skill. Include a before/after table only when the user requests one. Run the core and expanded testing workflows in `int-testing-agent-guidance` for every authoring request.
|
|
25
26
|
|
|
26
27
|
Do not modify unrelated files. Report the skill changed and validation performed, including any blockers or unverified requirements.
|
|
@@ -4,7 +4,7 @@ description: "Grill the user relentlessly about a plan, decision, or idea. Use w
|
|
|
4
4
|
user-invocable: false
|
|
5
5
|
metadata:
|
|
6
6
|
spindle:
|
|
7
|
-
version: 1.0.
|
|
7
|
+
version: 1.0.3
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
Stress-test the user's proposal until its decisions are explicit and you share an understanding. Treat dependent decisions as a **design tree**.
|
|
@@ -16,13 +16,13 @@ Stress-test the user's proposal until its decisions are explicit and you share a
|
|
|
16
16
|
3. Apply the answer and continue the queue, revising or skipping questions whose premises changed. Newly unlocked decisions wait for the next round.
|
|
17
17
|
4. When the queue is exhausted, recompute the frontier and start the next round.
|
|
18
18
|
|
|
19
|
-
Label each question visibly as **Round <R>, Question <Q>
|
|
19
|
+
Label each question visibly as **Round <R>, Question <Q> - <title>**, in chat or the tool's user-visible title. Start both counters at 1; increment the question number for each question asked and reset it to 1 when the round advances. The first question announces the new round without exposing the remaining queue.
|
|
20
20
|
|
|
21
21
|
Include the context needed to decide and a recommended answer. Phrase confirmations so "yes" accepts the recommendation; for choices, identify the recommended option.
|
|
22
22
|
|
|
23
23
|
Example opening:
|
|
24
24
|
|
|
25
|
-
> **Round 1, Question 1
|
|
25
|
+
> **Round 1, Question 1 - Output format**
|
|
26
26
|
>
|
|
27
27
|
> CSV meets the agreed export requirements. I recommend CSV. Shall we use it?
|
|
28
28
|
|
|
@@ -4,15 +4,13 @@ description: "This is an internal skill do not load it unless explicitly require
|
|
|
4
4
|
user-invocable: false
|
|
5
5
|
metadata:
|
|
6
6
|
spindle:
|
|
7
|
-
version: 1.
|
|
7
|
+
version: 1.6.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Subagent-Driven Development
|
|
11
11
|
|
|
12
12
|
The controller coordinates a feature's tickets, workers, checks, reviews, and completion. The feature workspace and `sdd.json` are the source of truth for structured ticket and delivery state; each ticket Markdown file holds its requirements, acceptance criteria, and discussion.
|
|
13
13
|
|
|
14
|
-
Use the existing checkout and preserve user changes and report history. TDD is optional; write appropriate tests and record verification evidence. Load and follow `int-verification-before-completion` before claiming work is complete. Serialize implementation and fixes, and keep implementation edits frozen while a review batch is running.
|
|
15
|
-
|
|
16
14
|
## Workflow map
|
|
17
15
|
|
|
18
16
|
Before acting on each chart node, announce `Step <node ID> - <node label>`, including initial entries, resumed steps, and loop re-entries. After each decision, state its result and selected branch before entering the target node.
|
|
@@ -20,7 +18,7 @@ Before acting on each chart node, announce `Step <node ID> - <node label>`, incl
|
|
|
20
18
|
```mermaid
|
|
21
19
|
flowchart TD
|
|
22
20
|
A[Restore feature state and readiness] --> B{Ready ticket available?}
|
|
23
|
-
B -- Yes --> C[
|
|
21
|
+
B -- Yes --> C[Implement, review, integrate, and validate tickets]
|
|
24
22
|
C --> A
|
|
25
23
|
B -- No --> D{All tickets closed?}
|
|
26
24
|
D -- No --> E[Resolve prerequisites or record blocker]
|
|
@@ -41,21 +39,27 @@ flowchart TD
|
|
|
41
39
|
|
|
42
40
|
## Ticket workflow
|
|
43
41
|
|
|
44
|
-
1. Read the feature spec, tickets, applicable instructions, glossary, and ADRs. Inspect `spindle sdd status --spec <path>` and `spindle sdd ready --spec <path>` to understand blockers, dependencies, and available work.
|
|
45
|
-
2. Create a ticket for independently actionable work with `spindle sdd ticket create`. Fill its `[REQUIREMENTS]` and `[ACCEPTANCE CRITERIA]` placeholders. Use `spindle sdd ticket update` for tracker status, explicit blockers, and dependencies; the supported lifecycle is `open`, `in-progress`, and `closed`. Readiness is derived from status, blockers, and dependencies rather than stored as a separate triage state.
|
|
46
|
-
3.
|
|
47
|
-
4.
|
|
48
|
-
5.
|
|
42
|
+
1. Read the feature spec, tickets, applicable instructions, glossary, and ADRs. Inspect `{{ computed.spindle_package_manager }} spindle sdd status --spec <path>` and `{{ computed.spindle_package_manager }} spindle sdd ready --spec <path>` to understand blockers, dependencies, and available work. Inspect feature records for secrets and start the feature worktree with `{{ computed.spindle_package_manager }} spindle sdd start --spec <path> --workspace <external-directory> --confirm-records`. Handle unrelated changes before starting. Run subsequent controller commands in the feature worktree using its returned spec path.
|
|
43
|
+
2. Create a ticket for independently actionable work with `{{ computed.spindle_package_manager }} spindle sdd ticket create`. Fill its `[REQUIREMENTS]` and `[ACCEPTANCE CRITERIA]` placeholders. Use `{{ computed.spindle_package_manager }} spindle sdd ticket update` for tracker status, explicit blockers, and dependencies; the supported lifecycle is `open`, `in-progress`, and `closed`. Readiness is derived from status, blockers, and dependencies rather than stored as a separate triage state.
|
|
44
|
+
3. Choose a safe concurrency limit. Use `{{ computed.spindle_package_manager }} spindle sdd implement --workspace <external-directory>` for each ready ticket and dispatch the returned assignment until capacity is full. As workers finish, dispatch other ready independent tickets without waiting for unrelated work. Inspect changed canonical records for secrets and pass `--confirm-records` before any automatic record commit. Each worker uses its own worktree. Give workers the canonical source and report paths; submit each implementation report with `{{ computed.spindle_package_manager }} spindle sdd submit --role implementation`.
|
|
45
|
+
4. Have each implementer commit its changes. Record relevant checks and submit reviews against that exact ticket commit. Keep its worktree frozen during review; any changed commit requires fresh checks and review.
|
|
46
|
+
5. Use `{{ computed.spindle_package_manager }} spindle sdd integrate` to merge reviewed work, inspecting changed canonical records and passing `--confirm-records` before any automatic record commit. Serialize merges and their post-merge checks. Declare the full non-empty check list with `checks require --scope post-merge`, run it in the feature worktree, and record results with `checks record --scope post-merge`. Passing checks close the ticket automatically and unblock eligible dependents.
|
|
47
|
+
|
|
48
|
+
If closure is blocked by a ticket blocker or unmet dependency, resolve it and repeat `checks require --scope post-merge` with the same complete list. Passing evidence is retained; rerun checks if their snapshot became stale.
|
|
49
|
+
|
|
50
|
+
If a post-merge check fails, keep other merges blocked. Fast-forward the clean ticket worktree to the recorded failed merge commit, then use `sdd correct --check-failure <command>` to dispatch a fix. Commit, check, and review the fix before merging it and rerunning the frozen post-merge check list.
|
|
51
|
+
|
|
52
|
+
If integration reports a conflict, rebase the ticket worktree onto the current feature branch, resolve and commit the conflict there, and use `sdd checks require --rebase-baseline` with an existing required command. Run fresh checks and obtain fresh review before retrying integration. Preserve all uncommitted changes and stop if recovery is unsafe.
|
|
49
53
|
|
|
50
|
-
If work is interrupted, inspect `spindle sdd status` and use `spindle sdd resume` to restore the recorded assignment. Preserve existing reports, findings, and evidence. Do not invent missing results or reset progress.
|
|
54
|
+
If work is interrupted, inspect `{{ computed.spindle_package_manager }} spindle sdd status` and use `{{ computed.spindle_package_manager }} spindle sdd resume` to restore the recorded assignment. Preserve existing reports, findings, and evidence. Do not invent missing results or reset progress.
|
|
51
55
|
|
|
52
56
|
## Feature review and completion
|
|
53
57
|
|
|
54
|
-
After every ticket is closed, establish current feature-level checks and request the comprehensive review with `spindle sdd review --scope delivery --inventory <json-array>`. The `sdd-reviewer` is the default reviewer. Add specialists only for justified objectives with `spindle sdd review require --scope delivery --type <agent-name>`; eligible names must be marked `canReview: true` in the Blueprint Catalog, and actual agent access must be confirmed before dispatch.
|
|
58
|
+
After every ticket is closed, establish current feature-level checks and request the comprehensive review with `{{ computed.spindle_package_manager }} spindle sdd review --scope delivery --inventory <json-array>`. The `sdd-reviewer` is the default reviewer. Add specialists only for justified objectives with `{{ computed.spindle_package_manager }} spindle sdd review require --scope delivery --type <agent-name>`; eligible names must be marked `canReview: true` in the Blueprint Catalog, and actual agent access must be confirmed before dispatch.
|
|
55
59
|
|
|
56
60
|
Submit every assigned review report against its exact assignment. Register findings from their report and snapshot. A blocking finding can name `--related-ticket`; once the complete review batch is submitted, that ticket is reopened so work can resume. Resolve blocking findings through ticket work and repeat any invalidated checks and reviews.
|
|
57
61
|
|
|
58
|
-
For detailed review, findings, correction,
|
|
62
|
+
For detailed review, findings, correction, final merge, checks, and cleanup, read [feature delivery](./references/full-spec.md). For feature-level corrective work, follow [corrective rounds](./references/corrective-rounds.md). Feature completion requires all tickets integrated, current passing required checks and reviews, no unresolved delivery blockers, and passing checks on the final merge. Do not modify the affected checkout concurrently with a Git transition. Never stash, discard, force-delete, push, or publish without authorization.
|
|
59
63
|
|
|
60
64
|
## Reports and verification
|
|
61
65
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
## Assignment
|
|
5
5
|
|
|
6
6
|
Implement ticket: [TICKET_ID]
|
|
7
|
-
|
|
7
|
+
Ticket worktree: [CHECKOUT]
|
|
8
8
|
Mode: [INITIAL_OR_CORRECTIVE]
|
|
9
9
|
|
|
10
10
|
## Requirements and starting state
|
|
@@ -20,7 +20,7 @@ Completed dependencies and starting snapshot:
|
|
|
20
20
|
|
|
21
21
|
## Scope and permissions
|
|
22
22
|
|
|
23
|
-
Allowed code
|
|
23
|
+
Allowed code and test files in the ticket worktree, and the canonical report path:
|
|
24
24
|
[FILE_SCOPE]
|
|
25
25
|
|
|
26
26
|
Permissions, including commit authorization:
|
package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/corrective-rounds.md
CHANGED
|
@@ -38,7 +38,7 @@ adjudication rather than another automatic dispatch.
|
|
|
38
38
|
|
|
39
39
|
## C. Record objective and dispatch correction
|
|
40
40
|
|
|
41
|
-
Use `spindle sdd correct --scope delivery` to record and dispatch the feature-level
|
|
41
|
+
Use `{{ computed.spindle_package_manager }} spindle sdd correct --scope delivery` to record and dispatch the feature-level
|
|
42
42
|
correction. Preserve prior attempts, reports, and report destinations.
|
|
43
43
|
Serialize implementation edits and keep the assignment limited to the
|
|
44
44
|
recorded objective.
|
package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/example-workflow.md
CHANGED
|
@@ -5,21 +5,23 @@ Markdown holds requirements and acceptance criteria; `sdd.json` holds tracker
|
|
|
5
5
|
status and dependencies.
|
|
6
6
|
|
|
7
7
|
1. Create a feature workspace and split independent work into tickets:
|
|
8
|
-
`spindle sdd create`, then `spindle sdd ticket create` for each ticket.
|
|
8
|
+
`{{ computed.spindle_package_manager }} spindle sdd create`, then `{{ computed.spindle_package_manager }} spindle sdd ticket create` for each ticket.
|
|
9
9
|
2. Record the dependency with
|
|
10
|
-
`spindle sdd ticket update --ticket T-0002 --blocked-by T-0001`. Check `spindle sdd ready`:
|
|
10
|
+
`{{ computed.spindle_package_manager }} spindle sdd ticket update --ticket T-0002 --blocked-by T-0001`. Check `{{ computed.spindle_package_manager }} spindle sdd ready`:
|
|
11
11
|
the prerequisite is ready and the dependent ticket is not.
|
|
12
|
-
3.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
3. Start the feature worktree in the supplied external directory. Implement
|
|
13
|
+
`T-0001` in its ticket worktree, submit its report, review the committed
|
|
14
|
+
change, and merge it into the feature branch. Declare and record passing
|
|
15
|
+
post-merge checks before it closes.
|
|
16
|
+
4. `T-0002` becomes ready once its dependency is integrated and validated.
|
|
17
|
+
Branch it from the updated feature branch and deliver it in the same way.
|
|
16
18
|
5. Record current feature-level required checks and request the comprehensive
|
|
17
|
-
review with `spindle sdd review --scope delivery`. Add only justified specialists.
|
|
19
|
+
review with `{{ computed.spindle_package_manager }} spindle sdd review --scope delivery`. Add only justified specialists.
|
|
18
20
|
6. Submit every assigned report. Register findings from their report and
|
|
19
21
|
snapshot. A blocking finding can reopen its related ticket; complete the
|
|
20
22
|
correction, close the ticket again, and refresh stale checks and review.
|
|
21
|
-
7.
|
|
22
|
-
the
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
7. Inspect canonical records and run `sdd finish --confirm-records` from the
|
|
24
|
+
feature worktree. In the original checkout, declare and run the complete
|
|
25
|
+
`checks require --scope final` list, record results against the returned
|
|
26
|
+
merge and snapshot, then run `sdd finish` again to clean up. The checked
|
|
27
|
+
merge and the later metadata-only commit are reported separately.
|
|
@@ -7,16 +7,16 @@ checks, review assignments, findings, and corrections.
|
|
|
7
7
|
|
|
8
8
|
## Checks and review
|
|
9
9
|
|
|
10
|
-
Inspect `spindle sdd status --spec <spec>` and `spindle sdd next --spec <spec>`. Establish
|
|
11
|
-
required final checks with `spindle sdd checks require --scope delivery`, run them, and
|
|
10
|
+
Inspect `{{ computed.spindle_package_manager }} spindle sdd status --spec <spec>` and `{{ computed.spindle_package_manager }} spindle sdd next --spec <spec>`. Establish
|
|
11
|
+
required final checks with `{{ computed.spindle_package_manager }} spindle sdd checks require --scope delivery`, run them, and
|
|
12
12
|
record actual results against the returned snapshot. Then dispatch the
|
|
13
13
|
comprehensive review with
|
|
14
|
-
`spindle sdd review --scope delivery --inventory <json-array>`. Its inventory must
|
|
14
|
+
`{{ computed.spindle_package_manager }} spindle sdd review --scope delivery --inventory <json-array>`. Its inventory must
|
|
15
15
|
cover the feature's current Git-derived changes.
|
|
16
16
|
|
|
17
17
|
The `sdd-reviewer` is the default comprehensive reviewer. Before dispatch,
|
|
18
18
|
record any justified specialist with
|
|
19
|
-
`spindle sdd review require --scope delivery --type <agent-name> --details <objective>`.
|
|
19
|
+
`{{ computed.spindle_package_manager }} spindle sdd review require --scope delivery --type <agent-name> --details <objective>`.
|
|
20
20
|
Only catalog agents with `canReview: true` are eligible. Confirm that the
|
|
21
21
|
controller can actually dispatch each selected agent; catalog eligibility does
|
|
22
22
|
not guarantee harness access.
|
|
@@ -28,45 +28,65 @@ failed, unavailable, stale, or mismatched review blocks completion.
|
|
|
28
28
|
## Findings and correction
|
|
29
29
|
|
|
30
30
|
Register findings from their assigned reports and snapshots with
|
|
31
|
-
`spindle sdd finding create --scope delivery`. Delivery findings have feature-scoped
|
|
31
|
+
`{{ computed.spindle_package_manager }} spindle sdd finding create --scope delivery`. Delivery findings have feature-scoped
|
|
32
32
|
IDs, provenance, ruling history, and status. Use `--related-ticket <id>` for a
|
|
33
33
|
finding that should return work to a specific ticket. A blocking linked finding
|
|
34
34
|
reopens its ticket after the complete review batch is submitted; dependent
|
|
35
35
|
tickets remain blocked until that ticket is closed again.
|
|
36
36
|
|
|
37
|
-
Use `spindle sdd finding update --scope delivery` for explicit rulings. Deferring a
|
|
37
|
+
Use `{{ computed.spindle_package_manager }} spindle sdd finding update --scope delivery` for explicit rulings. Deferring a
|
|
38
38
|
blocker requires rationale, a follow-up reference, and an approved delivery
|
|
39
39
|
requirements decision. Record that decision with
|
|
40
|
-
`spindle sdd requirements decide --scope delivery` only after a requirements change
|
|
40
|
+
`{{ computed.spindle_package_manager }} spindle sdd requirements decide --scope delivery` only after a requirements change
|
|
41
41
|
and completed prior review. Approval invalidates earlier aggregate assignments.
|
|
42
42
|
|
|
43
43
|
For actionable feature findings, follow [feature correction](./corrective-rounds.md)
|
|
44
|
-
and use `spindle sdd correct --scope delivery` to record
|
|
44
|
+
and use `{{ computed.spindle_package_manager }} spindle sdd correct --scope delivery` to record
|
|
45
45
|
each independent correction attempt. Record passing checks against the changed
|
|
46
46
|
feature snapshot and submit the implementation report before requesting a new
|
|
47
47
|
feature review. Pause unproductive work, recurring failures, or requirements
|
|
48
|
-
disagreement for adjudication. Resume with `spindle sdd resume --scope delivery`;
|
|
48
|
+
disagreement for adjudication. Resume with `{{ computed.spindle_package_manager }} spindle sdd resume --scope delivery`;
|
|
49
49
|
preserve existing assignments, attempts, evidence, and adjudication.
|
|
50
50
|
|
|
51
51
|
## Finish
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
Review each committed ticket before merging it into the feature worktree, then
|
|
54
|
+
record post-merge checks before unblocking dependents. A changed code or
|
|
55
55
|
requirements snapshot invalidates evidence that no longer covers it.
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
current `HEAD` after implementation; that could omit completed feature work
|
|
60
|
-
from review.
|
|
57
|
+
Do not silently substitute the current `HEAD` for the recorded Git baseline;
|
|
58
|
+
that could omit completed feature work from review.
|
|
61
59
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
feature's `reports/` directory.
|
|
60
|
+
Completion requires at least one ticket, every ticket integrated and validated,
|
|
61
|
+
current passing required feature checks and reviews, and no unresolved delivery
|
|
62
|
+
blockers. The retrospective policy is stored at feature creation: when required,
|
|
63
|
+
attach a Markdown report with `--report`; otherwise it is optional. Any report
|
|
64
|
+
must remain inside that feature's `reports/` directory.
|
|
68
65
|
|
|
69
|
-
|
|
70
|
-
`spindle sdd
|
|
66
|
+
Inspect canonical records for sensitive content, then run
|
|
67
|
+
`{{ computed.spindle_package_manager }} spindle sdd finish --spec <feature-spec> --author <controller> --confirm-records`
|
|
68
|
+
from the feature worktree, adding `--report <absolute-report-path>` when needed.
|
|
69
|
+
This merges into the recorded original branch and returns a pending final
|
|
70
|
+
validation, merge SHA, snapshot, and original spec path; it does not yet complete
|
|
71
|
+
the feature.
|
|
72
|
+
|
|
73
|
+
In the original checkout, declare the entire non-empty final list with
|
|
74
|
+
`{{ computed.spindle_package_manager }} spindle sdd checks require --spec <original-spec> --scope final --command <command> --author <controller>`,
|
|
75
|
+
repeating `--command` for each check. Run each command there, then record each
|
|
76
|
+
actual result with `{{ computed.spindle_package_manager }} spindle sdd checks record --spec <original-spec> --scope final --merge <merge-sha> --snapshot <snapshot> --command <command> --result <result> --author <controller>`.
|
|
77
|
+
Failed or unavailable results require `--details` and block cleanup until the
|
|
78
|
+
latest result for each command passes. The list is frozen once declared.
|
|
79
|
+
|
|
80
|
+
Run `{{ computed.spindle_package_manager }} spindle sdd finish --spec <original-spec> --author <controller>`
|
|
81
|
+
again to preflight and clean up the recorded worktrees and branches. The final
|
|
82
|
+
merge is the checked commit; the subsequent ledger-only relocation commit is
|
|
83
|
+
reported separately and is not itself checked. Preserve any dirty or unexpected
|
|
84
|
+
work and follow the reported journal for recovery rather than forcing cleanup.
|
|
85
|
+
Ignored files in worktrees slated for removal also block cleanup; do not discard
|
|
86
|
+
them without authorization. After a crash, remove a reported finalization lock
|
|
87
|
+
only after verifying its recorded owner has stopped.
|
|
88
|
+
|
|
89
|
+
Use `{{ computed.spindle_package_manager }} spindle sdd status`, `{{ computed.spindle_package_manager }} spindle sdd next`, and
|
|
90
|
+
`{{ computed.spindle_package_manager }} spindle sdd resume --scope delivery` to inspect blockers and
|
|
71
91
|
restore interrupted feature-level work. These commands do not close tickets or
|
|
72
92
|
publish changes.
|
|
@@ -6,18 +6,18 @@ Read when preparing or accepting a review assignment. The controller supplies th
|
|
|
6
6
|
|
|
7
7
|
`REVIEW_INPUTS` names an absolute, read-required package/manifest path. Read it and its required sources before inspecting the checkout or reviewing. Equivalent structured inputs inline remain valid; preserve supplied values rather than inferring missing revisions from Git.
|
|
8
8
|
|
|
9
|
-
| Input | Required meaning
|
|
10
|
-
| ---------------------- |
|
|
11
|
-
| Requirements | Canonical ticket/spec/comments pointers, applicable instructions, criteria, and constraints. Identify inapplicable sources explicitly.
|
|
12
|
-
| Workspace and snapshot | Absolute
|
|
13
|
-
| Complete change | Complete assigned diff with file inventory, stat, and enough context, or approved read-only retrieval using supplied revisions. Include dirty/untracked additions and binary changes, or identify unavailable material as a coverage gap.
|
|
14
|
-
| Verification | Commands, results, test summary, exact snapshot covered, and unavailable required checks. Evidence pointers are valid; read them before judging coverage.
|
|
9
|
+
| Input | Required meaning |
|
|
10
|
+
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| Requirements | Canonical ticket/spec/comments pointers, applicable instructions, criteria, and constraints. Identify inapplicable sources explicitly. |
|
|
12
|
+
| Workspace and snapshot | Absolute ticket or feature worktree, as appropriate; exact reviewed identity, comparison base and head revisions, and included dirty/untracked changes or `NONE`. SHAs are provenance metadata and may live in the package rather than repeated prompt fields. |
|
|
13
|
+
| Complete change | Complete assigned diff with file inventory, stat, and enough context, or approved read-only retrieval using supplied revisions. Include dirty/untracked additions and binary changes, or identify unavailable material as a coverage gap. |
|
|
14
|
+
| Verification | Commands, results, test summary, exact snapshot covered, and unavailable required checks. Evidence pointers are valid; read them before judging coverage. |
|
|
15
15
|
|
|
16
16
|
Keep every meaning authoritative in one place: reference canonical requirements, reports, and evidence rather than copying full logs or the entire ledger. A pointer must identify the required material, not merely say "see ledger". The role-specific assignment supplies phase, objective, history relevant to that role, and its distinct report destination.
|
|
17
17
|
|
|
18
18
|
## Snapshot ownership and completeness
|
|
19
19
|
|
|
20
|
-
The controller owns construction, freezing, and freshness checks. Reuse existing durable complete diffs and evidence; no additional packaging command or hash scheme is required.
|
|
20
|
+
The controller owns construction, freezing, and freshness checks. Reuse existing durable complete diffs and evidence; no additional packaging command or hash scheme is required. Ticket reviews must cover the exact committed ticket revision and its complete change against the assigned base. Keep that worktree clean and frozen throughout the review batch; reports are written to the canonical feature workspace.
|
|
21
21
|
|
|
22
22
|
Corrections produce a new reviewed identity with fresh covering checks. Preserve the previous package and evidence as history rather than relabeling them as verification of changed code.
|
|
23
23
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: int-testing-agent-guidance
|
|
3
3
|
metadata:
|
|
4
4
|
spindle:
|
|
5
|
-
version: 1.0.
|
|
5
|
+
version: 1.0.1
|
|
6
6
|
description: "{{ computed.internal_skill_description }}"
|
|
7
7
|
user-invocable: false
|
|
8
8
|
---
|
|
@@ -32,7 +32,7 @@ Use this workflow for behavior-shaping changes to skills, agents, prompts, instr
|
|
|
32
32
|
|
|
33
33
|
## Expanded testing
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Always run expanded testing for authoring tasks. It adds independent samples and does not replace the core baseline and retest.
|
|
36
36
|
|
|
37
37
|
1. Freeze scenario prompts and observable pass criteria before dispatch. Cover each meaningful branch. For discipline-enforcing guidance, use at least three scenarios, each combining at least three pressures such as deadline, authority, sunk cost, or exhaustion.
|
|
38
38
|
2. Run five independent read-only agents against the baseline. For a new document, provide no proposed guidance; for an edit, provide the current version. Each agent runs every scenario once and reports its concrete choices and rationalizations verbatim.
|
|
@@ -4,7 +4,7 @@ description: "{{ computed.internal_skill_description }}"
|
|
|
4
4
|
user-invocable: false
|
|
5
5
|
metadata:
|
|
6
6
|
spindle:
|
|
7
|
-
version: 1.3.
|
|
7
|
+
version: 1.3.1
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Writing Skills
|
|
@@ -118,7 +118,7 @@ Compare observed behavior with the unchanged criterion. An unresolved failure se
|
|
|
118
118
|
|
|
119
119
|
### G. Refactor and deliver
|
|
120
120
|
|
|
121
|
-
Prune duplication, stale material, and speculative rules. Retest after wording changes. Verify frontmatter, relative links, resource packaging, and any required version bump.
|
|
121
|
+
Prune duplication, stale material, and speculative rules. Retest after wording changes. Verify frontmatter, relative links, resource packaging, and any required version bump. Always run expanded testing with `int-testing-agent-guidance`.
|
|
122
122
|
|
|
123
123
|
**Complete when:** final validation passes or limitations are explicit, and the change is ready for authorized delivery. Commit, push, or open a PR only when requested.
|
|
124
124
|
|
|
@@ -36,7 +36,7 @@ For discipline-enforcing guidance, consult [Persuasion principles](./persuasion-
|
|
|
36
36
|
|
|
37
37
|
Rerun the same prompt and criterion with the full revised guidance in a fresh context. Check actual choices, resource loads, and artifacts. Correct remaining failures narrowly, then rerun after each wording change.
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
Always run expanded testing with `int-testing-agent-guidance`. It adds coverage rather than replacing the focused baseline and retest.
|
|
40
40
|
|
|
41
41
|
| Testing pitfall | Required evidence |
|
|
42
42
|
| --------------------------------------- | --------------------------------------------------------------- |
|
|
@@ -45,4 +45,4 @@ Run expanded testing only when explicitly requested or when `--test` is present,
|
|
|
45
45
|
| "There is no time" | Recorded validation or an explicit blocker, not claimed success |
|
|
46
46
|
| "The output is close enough" | The unchanged observable criterion passes |
|
|
47
47
|
|
|
48
|
-
**Complete when:** the final focused scenario passes without unresolved failures,
|
|
48
|
+
**Complete when:** the final focused scenario passes without unresolved failures, expanded testing is complete, or remaining failures and validation limits are explicitly reported.
|