@use-the-fork/spindle 0.0.1 → 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.
Files changed (34) hide show
  1. package/build/Assets/Blueprints/Catalog.js +12 -7
  2. package/build/Assets/Blueprints/skills/author-agent/SKILL.md +9 -8
  3. package/build/Assets/Blueprints/skills/author-instruction/SKILL.md +9 -8
  4. package/build/Assets/Blueprints/skills/author-skill/SKILL.md +9 -8
  5. package/build/Assets/Blueprints/skills/grill/SKILL.md +3 -3
  6. package/build/Assets/Blueprints/skills/int-subagent-driven-dev/SKILL.md +6 -6
  7. package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/corrective-rounds.md +1 -1
  8. package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/example-workflow.md +4 -4
  9. package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/full-spec.md +12 -12
  10. package/build/Assets/Blueprints/skills/int-testing-agent-guidance/SKILL.md +2 -2
  11. package/build/Assets/Blueprints/skills/int-writing-skills/SKILL.md +2 -2
  12. package/build/Assets/Blueprints/skills/int-writing-skills/references/testing-skills.md +2 -2
  13. package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/SKILL.md +38 -0
  14. package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/concurrency-and-pools.md +73 -0
  15. package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/connectors.md +99 -0
  16. package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/data-transfer-objects.md +104 -0
  17. package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/handling-failures.md +95 -0
  18. package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/requests.md +111 -0
  19. package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/responses.md +56 -0
  20. package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/sending-requests.md +42 -0
  21. package/build/Assets/Blueprints/skills/ref-php-laravel-saloon-api-integrations/references/testing.md +119 -0
  22. package/build/Assets/Blueprints/skills/{author-design → sdd-author-design}/SKILL.md +12 -4
  23. package/build/Assets/Blueprints/skills/{grill-design → sdd-grill-design}/SKILL.md +1 -1
  24. package/build/Assets/Blueprints/skills/{implement-spec → sdd-implement-spec}/SKILL.md +3 -3
  25. package/build/Assets/Blueprints/skills/{to-spec → sdd-to-spec}/SKILL.md +3 -3
  26. package/build/Assets/Blueprints/skills/{to-tickets → sdd-to-tickets}/SKILL.md +3 -3
  27. package/build/Assets/Blueprints/skills/{setup-project → spindle-project-setup}/SKILL.md +4 -4
  28. package/build/Assets/Blueprints/skills/{update-tooling → spindle-tooling-update}/SKILL.md +5 -5
  29. package/build/Assets/Templates/project/copilot-instructions.md +3 -9
  30. package/build/Assets/Templates/project/ticket-tracker.md +5 -5
  31. package/build/BlueprintManagement/Commands/Prompts.js +1 -1
  32. package/build/TemplateRendering/Computed/ComputedVariableProviders.js +2 -0
  33. package/build/TemplateRendering/Computed/Providers/AuthoringFlowchartProvider.js +26 -0
  34. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: setup-project
3
- description: "Use after spindle init to document project tooling and establish domain glossaries."
2
+ name: spindle-project-setup
3
+ description: "Use after {{ computed.spindle_package_manager }} spindle init to document project tooling and establish domain glossaries."
4
4
  disable-model-invocation: false
5
5
  user-invocable: true
6
6
  metadata:
@@ -14,7 +14,7 @@ Curate the commands agents should use and establish project domain documentation
14
14
 
15
15
  ## Prerequisite
16
16
 
17
- The user must have completed `spindle init` before running this skill. This skill
17
+ The user must have completed `{{ computed.spindle_package_manager }} spindle init` before running this skill. This skill
18
18
  does not initialize the project. If the required project guidance or tooling
19
19
  registry is missing, report the prerequisite and stop.
20
20
 
@@ -41,7 +41,7 @@ Also inspect the source to determine whether this is an existing project: it con
41
41
 
42
42
  ### C. Update and verify tooling
43
43
 
44
- Load and follow the `update-tooling` skill. Supply the verified candidate commands and relevant configuration paths found in B as explicit context, and request a full registry comparison for initial setup. That skill owns the proposal, explicit approval, revision loop, `spindle tool` registry mutations, and generated-guide verification; do not duplicate or bypass its approval gate.
44
+ Load and follow the `spindle-tooling-update` skill. Supply the verified candidate commands and relevant configuration paths found in B as explicit context, and request a full registry comparison for initial setup. That skill owns the proposal, explicit approval, revision loop, `{{ computed.spindle_package_manager }} spindle tool` registry mutations, and generated-guide verification; do not duplicate or bypass its approval gate.
45
45
 
46
46
  **Complete when:** the delegated workflow has returned with the registry and guide verified, selecting G. If approval is pending, wait; if it reports failures or discrepancies, report the blocker and stop rather than claiming setup is complete.
47
47
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: update-tooling
2
+ name: spindle-tooling-update
3
3
  description: "Use when tooling commands are added, changed, or removed, or when refreshing the tooling registry and generated guide."
4
4
  argument-hint: "[change description or tooling paths]"
5
5
  disable-model-invocation: false
@@ -34,7 +34,7 @@ flowchart TD
34
34
 
35
35
  ### A. Inspect tooling and registry
36
36
 
37
- Read project guidance and run `spindle tool list` from the target Git working tree. Inspect package manifests, task runner configuration, and test/build configuration for the supplied target, or the whole project when no target is supplied. Verify command names, argument forms, and working-directory requirements against configuration. Preserve unrelated registry entries; absence from a targeted inspection is not evidence that an entry is obsolete.
37
+ Read project guidance and run `{{ computed.spindle_package_manager }} spindle tool list` from the target Git working tree. Inspect package manifests, task runner configuration, and test/build configuration for the supplied target, or the whole project when no target is supplied. Verify command names, argument forms, and working-directory requirements against configuration. Preserve unrelated registry entries; absence from a targeted inspection is not evidence that an entry is obsolete.
38
38
 
39
39
  Do not execute project commands merely to document them if execution could install dependencies, mutate data, or have side effects without authorization. If the registry is missing or invalid, report the prerequisite and stop; do not run initialization or silently repair it.
40
40
 
@@ -59,14 +59,14 @@ Ask for explicit approval of the complete change set and wait. Approval applies
59
59
  Apply only approved changes through Spindle, not by directly editing the registry or generated Markdown. Add one entry per approved command:
60
60
 
61
61
  ```sh
62
- spindle tool add \
62
+ {{ computed.spindle_package_manager }} spindle tool add \
63
63
  --key test-unit \
64
64
  --section Testing \
65
65
  --command "pnpm test -- --run" \
66
66
  --description "Run the focused unit tests."
67
67
  ```
68
68
 
69
- Use `spindle tool update <key>` with the approved `--section`, `--command`, or `--description` fields; `--clear-description` explicitly removes a description. Use `spindle tool remove <key>` for approved removals. Each successful mutation regenerates the guide, grouped by section with empty sections omitted.
69
+ Use `{{ computed.spindle_package_manager }} spindle tool update <key>` with the approved `--section`, `--command`, or `--description` fields; `--clear-description` explicitly removes a description. Use `{{ computed.spindle_package_manager }} spindle tool remove <key>` for approved removals. Each successful mutation regenerates the guide, grouped by section with empty sections omitted.
70
70
  Run project scripts with `{{ computed.spindle_package_manager }} <script>`, such as `{{ computed.spindle_package_manager }} lint`.
71
71
 
72
72
  If the inspected registry or relevant configuration has changed since approval, stop and return to A, then obtain approval for a refreshed proposal. If a command fails, stop and report the failure and any already-applied changes; do not claim atomicity or completion.
@@ -75,7 +75,7 @@ If the inspected registry or relevant configuration has changed since approval,
75
75
 
76
76
  ### E. Verify registry and guide
77
77
 
78
- Run `spindle tool list` again and inspect `docs/agents/tooling.md`. Confirm entries, sections, commands, descriptions, and limitations agree, approved changes are reflected, and unrelated entries remain unchanged. After a decline or no-op, verify the existing state without mutating it. Report mismatches; any corrective changes require a new proposal and approval rather than direct Markdown edits.
78
+ Run `{{ computed.spindle_package_manager }} spindle tool list` again and inspect `docs/agents/tooling.md`. Confirm entries, sections, commands, descriptions, and limitations agree, approved changes are reflected, and unrelated entries remain unchanged. After a decline or no-op, verify the existing state without mutating it. Report mismatches; any corrective changes require a new proposal and approval rather than direct Markdown edits.
79
79
 
80
80
  **Complete when:** verification results and any discrepancies are known, selecting F.
81
81
 
@@ -1,14 +1,8 @@
1
- ## Agent skills
1
+ ## Issue tracker
2
2
 
3
- ### Issue tracker
3
+ SDD specs and tickets live in numbered `.scratch/<feature-id>-<feature-slug>/` workspaces. See `docs/agents/issue-tracker.md` and `docs/agents/ticket-tracker.md` for their conventions.
4
4
 
5
- Repository triage requests are tracked as local Markdown under `.scratch/YYYY-MM-DD-<feature-slug>/`; SDD specs and tickets live in numbered `.scratch/<feature-id>-<feature-slug>/` workspaces. See `docs/agents/issue-tracker.md` and `docs/agents/ticket-tracker.md` for their conventions.
6
-
7
- ### Triage labels
8
-
9
- Use `Category: bug|enhancement` and the five canonical state values in `Status:`. See `docs/agents/triage-labels.md`.
10
-
11
- ### Domain docs
5
+ ## Domain docs
12
6
 
13
7
  This is a multi-context repo; use `GLOSSARY-MAP.md` to find the relevant context glossary and consult `docs/adr/` for cross-context decisions. See `docs/agents/domain.md`.
14
8
 
@@ -15,19 +15,19 @@ Spindle SDD stores feature work in `.scratch/` workspaces. A workspace contains
15
15
  Create each approved ticket in dependency order:
16
16
 
17
17
  ```sh
18
- spindle sdd ticket create --spec <absolute-spec-path> --title "..." --reporter "..." --category enhancement --author maintainer
18
+ {{ computed.spindle_package_manager }} spindle sdd ticket create --spec <absolute-spec-path> --title "..." --reporter "..." --category enhancement --author maintainer
19
19
  ```
20
20
 
21
21
  The command returns the new ticket ID and path. Complete its template, then set dependencies with `ticket update`:
22
22
 
23
23
  ```sh
24
- spindle sdd ticket update --spec <absolute-spec-path> --ticket T-0002 --blocked-by T-0001 --author maintainer
25
- spindle sdd ticket comment --spec <absolute-spec-path> --ticket T-0001 --details "..." --author maintainer
26
- spindle sdd ready --spec <absolute-spec-path>
24
+ {{ computed.spindle_package_manager }} spindle sdd ticket update --spec <absolute-spec-path> --ticket T-0002 --blocked-by T-0001 --author maintainer
25
+ {{ computed.spindle_package_manager }} spindle sdd ticket comment --spec <absolute-spec-path> --ticket T-0001 --details "..." --author maintainer
26
+ {{ computed.spindle_package_manager }} spindle sdd ready --spec <absolute-spec-path>
27
27
  ```
28
28
 
29
29
  Use `--clear-blocked-by` to remove dependencies. Use `ticket update --status` to change status. Ticket Markdown remains editable; attributed comments are appended under `## Comments`. Do not add an execution field to the ticket file: execution transitions are recorded in `sdd.json`.
30
30
 
31
31
  ## Delivery
32
32
 
33
- Use `spindle sdd status` and `spindle sdd ready` to inspect work. Claim and dispatch ready tickets with `spindle sdd claim` and `spindle sdd implement`, submit the assigned report with `spindle sdd submit`, and close completed tickets with `spindle sdd ticket update --status closed`. Follow the `int-subagent-driven-dev` skill for review, correction, and feature completion.
33
+ Use `{{ computed.spindle_package_manager }} spindle sdd status` and `{{ computed.spindle_package_manager }} spindle sdd ready` to inspect work. Claim and dispatch ready tickets with `{{ computed.spindle_package_manager }} spindle sdd claim` and `{{ computed.spindle_package_manager }} spindle sdd implement`, submit the assigned report with `{{ computed.spindle_package_manager }} spindle sdd submit`, and close completed tickets with `{{ computed.spindle_package_manager }} spindle sdd ticket update --status closed`. Follow the `int-subagent-driven-dev` skill for review, correction, and feature completion.
@@ -20,7 +20,7 @@ export async function promptSpindlePackageManager() {
20
20
  message: "Which package-manager command should Spindle use in generated guidance?",
21
21
  options: [
22
22
  { value: "npm run", label: "npm run" },
23
- { value: "pnpm", label: "pnpm" },
23
+ { value: "pnpm exec", label: "pnpm exec" },
24
24
  { value: "yarn", label: "yarn" },
25
25
  { value: "bun", label: "bun" },
26
26
  { value: "other", label: "Other" },
@@ -1,6 +1,8 @@
1
+ import { AuthoringFlowchartProvider } from "./Providers/AuthoringFlowchartProvider.js";
1
2
  import { InternalSkillDescriptionProvider } from "./Providers/InternalSkillDescriptionProvider.js";
2
3
  import { SpindlePackageManagerProvider } from "./Providers/SpindlePackageManagerProvider.js";
3
4
  export const computedVariableProviders = {
5
+ authoring_flowchart: AuthoringFlowchartProvider,
4
6
  internal_skill_description: InternalSkillDescriptionProvider,
5
7
  spindle_package_manager: SpindlePackageManagerProvider,
6
8
  };
@@ -0,0 +1,26 @@
1
+ import { ComputedVariableProvider } from "../ComputedVariableProvider.js";
2
+ export class AuthoringFlowchartProvider extends ComputedVariableProvider {
3
+ render() {
4
+ return [
5
+ "```mermaid",
6
+ "flowchart TD",
7
+ ' A["Read and consider only the `int-writing-for-agents` and `asd-ste100` skills"]',
8
+ ' A --> B["Use the `grill` skill on the user request"]',
9
+ ' B --> C{"Shared understanding confirmed?"}',
10
+ ' C -- "No" --> B',
11
+ ' C -- "Yes" --> D["Load the remaining required skills"]',
12
+ ' D --> E["Run the core and expanded baselines"]',
13
+ ' E --> F{"Baseline shows a gap?"}',
14
+ ' F -- "No" --> J["Report that no change is needed"]',
15
+ ' F -- "Yes" --> G["Create or update the requested artifact"]',
16
+ ' G --> H["Run the core and expanded retests"]',
17
+ ' H --> I{"All criteria pass?"}',
18
+ ' I -- "No" --> G',
19
+ ' I -- "Yes" --> K["Report the artifact and validation"]',
20
+ "```",
21
+ "",
22
+ "During the grill exchange, ask one question per turn and wait for the answer.",
23
+ "Do not load other skills or announce the current flowchart step until the user confirms shared understanding.",
24
+ ].join("\n");
25
+ }
26
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@use-the-fork/spindle",
3
- "version": "0.0.1",
3
+ "version": "0.1.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "ISC",