spine-cli 0.1.0__tar.gz

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 (79) hide show
  1. spine_cli-0.1.0/.agents/skills/build/SKILL.md +16 -0
  2. spine_cli-0.1.0/.agents/skills/doctor/SKILL.md +16 -0
  3. spine_cli-0.1.0/.agents/skills/eval/SKILL.md +17 -0
  4. spine_cli-0.1.0/.agents/skills/new/SKILL.md +18 -0
  5. spine_cli-0.1.0/.agents/skills/next/SKILL.md +18 -0
  6. spine_cli-0.1.0/.agents/skills/review/SKILL.md +23 -0
  7. spine_cli-0.1.0/.agents/skills/wayfind/SKILL.md +19 -0
  8. spine_cli-0.1.0/.claude/skills/build/SKILL.md +16 -0
  9. spine_cli-0.1.0/.claude/skills/doctor/SKILL.md +16 -0
  10. spine_cli-0.1.0/.claude/skills/eval/SKILL.md +17 -0
  11. spine_cli-0.1.0/.claude/skills/new/SKILL.md +18 -0
  12. spine_cli-0.1.0/.claude/skills/next/SKILL.md +18 -0
  13. spine_cli-0.1.0/.claude/skills/review/SKILL.md +23 -0
  14. spine_cli-0.1.0/.claude/skills/wayfind/SKILL.md +19 -0
  15. spine_cli-0.1.0/.cursor/skills/build/SKILL.md +16 -0
  16. spine_cli-0.1.0/.cursor/skills/doctor/SKILL.md +16 -0
  17. spine_cli-0.1.0/.cursor/skills/eval/SKILL.md +17 -0
  18. spine_cli-0.1.0/.cursor/skills/new/SKILL.md +18 -0
  19. spine_cli-0.1.0/.cursor/skills/next/SKILL.md +18 -0
  20. spine_cli-0.1.0/.cursor/skills/review/SKILL.md +23 -0
  21. spine_cli-0.1.0/.cursor/skills/wayfind/SKILL.md +19 -0
  22. spine_cli-0.1.0/.gitignore +7 -0
  23. spine_cli-0.1.0/AGENTS.md +16 -0
  24. spine_cli-0.1.0/CONTEXT.md +57 -0
  25. spine_cli-0.1.0/HANDOFF.md +21 -0
  26. spine_cli-0.1.0/LICENSE +21 -0
  27. spine_cli-0.1.0/PKG-INFO +161 -0
  28. spine_cli-0.1.0/README.md +36 -0
  29. spine_cli-0.1.0/docs/issue-tracker.md +17 -0
  30. spine_cli-0.1.0/docs/spine/README.md +19 -0
  31. spine_cli-0.1.0/docs/spine/contract.yaml +31 -0
  32. spine_cli-0.1.0/docs/spine/maps/map.md +11 -0
  33. spine_cli-0.1.0/docs/spine/tickets/01-dogfood-this-target.md +11 -0
  34. spine_cli-0.1.0/docs/spine/wires.yaml +26 -0
  35. spine_cli-0.1.0/docs/spine/work-items/02-software-proof-artifacts.md +13 -0
  36. spine_cli-0.1.0/docs/spine/work-items/03-doctor-rollups.md +13 -0
  37. spine_cli-0.1.0/docs/spine/work-items/04-binder-cli-flags.md +13 -0
  38. spine_cli-0.1.0/docs/spine/work-items/05-evolve-wire-tests.md +13 -0
  39. spine_cli-0.1.0/issues/01-name-the-toolkit.md +17 -0
  40. spine_cli-0.1.0/issues/02-license.md +14 -0
  41. spine_cli-0.1.0/issues/03-github-owner.md +14 -0
  42. spine_cli-0.1.0/issues/04-wayfinder-as-files.md +22 -0
  43. spine_cli-0.1.0/issues/05-two-tier-paths.md +20 -0
  44. spine_cli-0.1.0/issues/06-short-execution-machine.md +31 -0
  45. spine_cli-0.1.0/issues/07-cli-verb-surface.md +24 -0
  46. spine_cli-0.1.0/issues/08-python-uv-packaging.md +17 -0
  47. spine_cli-0.1.0/issues/09-binder-concern-table.md +18 -0
  48. spine_cli-0.1.0/issues/10-binder-skill-shape.md +17 -0
  49. spine_cli-0.1.0/issues/11-software-profile.md +17 -0
  50. spine_cli-0.1.0/issues/12-doctor-duties.md +15 -0
  51. spine_cli-0.1.0/issues/13-claim-policy.md +15 -0
  52. spine_cli-0.1.0/issues/14-init-and-stranger-install.md +17 -0
  53. spine_cli-0.1.0/issues/15-write-the-spec.md +15 -0
  54. spine_cli-0.1.0/issues/16-harness-skill-discovery.md +18 -0
  55. spine_cli-0.1.0/issues/17-packaging-and-name.md +16 -0
  56. spine_cli-0.1.0/map.md +57 -0
  57. spine_cli-0.1.0/pyproject.toml +35 -0
  58. spine_cli-0.1.0/research/16-harness-skill-discovery.md +173 -0
  59. spine_cli-0.1.0/research/17-packaging-and-name.md +127 -0
  60. spine_cli-0.1.0/spec.md +148 -0
  61. spine_cli-0.1.0/src/spine/__init__.py +3 -0
  62. spine_cli-0.1.0/src/spine/artifacts.py +257 -0
  63. spine_cli-0.1.0/src/spine/cli.py +108 -0
  64. spine_cli-0.1.0/src/spine/data/binder/build/SKILL.md +16 -0
  65. spine_cli-0.1.0/src/spine/data/binder/doctor/SKILL.md +16 -0
  66. spine_cli-0.1.0/src/spine/data/binder/eval/SKILL.md +17 -0
  67. spine_cli-0.1.0/src/spine/data/binder/new/SKILL.md +18 -0
  68. spine_cli-0.1.0/src/spine/data/binder/next/SKILL.md +18 -0
  69. spine_cli-0.1.0/src/spine/data/binder/review/SKILL.md +23 -0
  70. spine_cli-0.1.0/src/spine/data/binder/wayfind/SKILL.md +19 -0
  71. spine_cli-0.1.0/src/spine/data/contract.yaml +31 -0
  72. spine_cli-0.1.0/src/spine/data/wires.yaml +26 -0
  73. spine_cli-0.1.0/src/spine/doctor.py +72 -0
  74. spine_cli-0.1.0/src/spine/evolve.py +92 -0
  75. spine_cli-0.1.0/src/spine/initcmd.py +111 -0
  76. spine_cli-0.1.0/src/spine/model.py +93 -0
  77. spine_cli-0.1.0/src/spine/resources.py +14 -0
  78. spine_cli-0.1.0/tests/test_spine.py +237 -0
  79. spine_cli-0.1.0/uv.lock +147 -0
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: build
3
+ description: Implement a software work item in doing. Use when the item is claimed and status is doing.
4
+ ---
5
+
6
+ # build
7
+
8
+ ```
9
+ spine claim docs/spine/work-items/NN-slug.md
10
+ spine set-status docs/spine/work-items/NN-slug.md doing
11
+ ```
12
+
13
+ Agents own content. CLI owns metadata. Install craft: `npx skills add mattpocock/skills -s implement -s tdd -s codebase-design -y`.
14
+
15
+ ## Gate
16
+ doing (agent-drivable). Next: checking.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: doctor
3
+ description: Recover mechanical drift in a spine target. Use at session start and when files look wrong.
4
+ ---
5
+
6
+ # doctor
7
+
8
+ ```
9
+ spine doctor
10
+ spine evolve
11
+ ```
12
+
13
+ Doctor auto-fixes stale claims, CLI-owned links, and rollups. It reports unknown statuses, missing spec files, gitignore drift. Never rewrite content sections by hand to fake a fix.
14
+
15
+ ## Gate
16
+ Recovery loop. Not a harness hook.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: eval
3
+ description: Check a software work item against acceptance. Use when status is checking.
4
+ ---
5
+
6
+ # eval
7
+
8
+ Write proof under `.spine/evals/`. Then:
9
+
10
+ ```
11
+ spine set-status docs/spine/work-items/NN-slug.md reviewing
12
+ ```
13
+
14
+ Craft: `npx skills add mattpocock/skills -s qa -y`.
15
+
16
+ ## Gate
17
+ checking (agent-drivable). Software profile requires this before done.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: new
3
+ description: Capture a map ticket or work item via the spine CLI. Use when something new must be recorded in the target.
4
+ ---
5
+
6
+ # new
7
+
8
+ Mint artifacts with the CLI. Do not hand-edit status, owner, claim, links, or numbers.
9
+
10
+ ```
11
+ spine new ticket --title "..." --type grilling
12
+ spine new work-item --title "..." --profile software
13
+ ```
14
+
15
+ Craft skills for interviewing live on skills.sh. Default wire: `mattpocock/skills` `grill-me` / `wayfinder` (`npx skills add mattpocock/skills -s grill-me -s wayfinder -y`). See `docs/spine/wires.yaml`.
16
+
17
+ ## Gate
18
+ creating-work-item is HITL. Tickets start `open`. Work items start `ready`.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: next
3
+ description: Pick the next spine action from the map frontier and work-item board.
4
+ ---
5
+
6
+ # next
7
+
8
+ Run `spine doctor` then `spine status`. Take the first open unblocked unclaimed ticket, or the work item whose status is the next gate.
9
+
10
+ ```
11
+ spine doctor
12
+ spine status
13
+ ```
14
+
15
+ Craft router (optional): `npx skills add mattpocock/skills -s ask-matt -s implement -y`.
16
+
17
+ ## Gate
18
+ Respect HITL: do not `set-status` to `reviewing` verdicts or mint work items without a human if the contract marks them HITL.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: review
3
+ description: Review a software work item. Use when status is reviewing.
4
+ ---
5
+
6
+ # review
7
+
8
+ HITL verdict. Proof under `.spine/reviews/`. Pass:
9
+
10
+ ```
11
+ spine set-status docs/spine/work-items/NN-slug.md done
12
+ ```
13
+
14
+ Bounce:
15
+
16
+ ```
17
+ spine set-status docs/spine/work-items/NN-slug.md changes-requested
18
+ ```
19
+
20
+ Craft: `npx skills add mattpocock/skills -s code-review -y`.
21
+
22
+ ## Gate
23
+ reviewing (HITL). Software profile requires this before done.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: wayfind
3
+ description: Plan with a spine map and tickets. Use when the way to a destination is foggy or multi-session.
4
+ ---
5
+
6
+ # wayfind
7
+
8
+ Planning lives on the map, not on the work item. Load `docs/spine/maps/`, work frontier tickets under `docs/spine/tickets/`. Claim a ticket with the CLI before work.
9
+
10
+ ```
11
+ spine status
12
+ spine new ticket --title "..." --type research
13
+ spine claim tickets/NN-slug.md
14
+ ```
15
+
16
+ Do not vendor Wayfinder. Install craft from skills.sh: `npx skills add mattpocock/skills -s wayfinder -s grilling -s domain-modeling -y`.
17
+
18
+ ## Gate
19
+ No work-item status for planning. Create a work item at `ready` only when the way is clear.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: build
3
+ description: Implement a software work item in doing. Use when the item is claimed and status is doing.
4
+ ---
5
+
6
+ # build
7
+
8
+ ```
9
+ spine claim docs/spine/work-items/NN-slug.md
10
+ spine set-status docs/spine/work-items/NN-slug.md doing
11
+ ```
12
+
13
+ Agents own content. CLI owns metadata. Install craft: `npx skills add mattpocock/skills -s implement -s tdd -s codebase-design -y`.
14
+
15
+ ## Gate
16
+ doing (agent-drivable). Next: checking.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: doctor
3
+ description: Recover mechanical drift in a spine target. Use at session start and when files look wrong.
4
+ ---
5
+
6
+ # doctor
7
+
8
+ ```
9
+ spine doctor
10
+ spine evolve
11
+ ```
12
+
13
+ Doctor auto-fixes stale claims, CLI-owned links, and rollups. It reports unknown statuses, missing spec files, gitignore drift. Never rewrite content sections by hand to fake a fix.
14
+
15
+ ## Gate
16
+ Recovery loop. Not a harness hook.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: eval
3
+ description: Check a software work item against acceptance. Use when status is checking.
4
+ ---
5
+
6
+ # eval
7
+
8
+ Write proof under `.spine/evals/`. Then:
9
+
10
+ ```
11
+ spine set-status docs/spine/work-items/NN-slug.md reviewing
12
+ ```
13
+
14
+ Craft: `npx skills add mattpocock/skills -s qa -y`.
15
+
16
+ ## Gate
17
+ checking (agent-drivable). Software profile requires this before done.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: new
3
+ description: Capture a map ticket or work item via the spine CLI. Use when something new must be recorded in the target.
4
+ ---
5
+
6
+ # new
7
+
8
+ Mint artifacts with the CLI. Do not hand-edit status, owner, claim, links, or numbers.
9
+
10
+ ```
11
+ spine new ticket --title "..." --type grilling
12
+ spine new work-item --title "..." --profile software
13
+ ```
14
+
15
+ Craft skills for interviewing live on skills.sh. Default wire: `mattpocock/skills` `grill-me` / `wayfinder` (`npx skills add mattpocock/skills -s grill-me -s wayfinder -y`). See `docs/spine/wires.yaml`.
16
+
17
+ ## Gate
18
+ creating-work-item is HITL. Tickets start `open`. Work items start `ready`.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: next
3
+ description: Pick the next spine action from the map frontier and work-item board.
4
+ ---
5
+
6
+ # next
7
+
8
+ Run `spine doctor` then `spine status`. Take the first open unblocked unclaimed ticket, or the work item whose status is the next gate.
9
+
10
+ ```
11
+ spine doctor
12
+ spine status
13
+ ```
14
+
15
+ Craft router (optional): `npx skills add mattpocock/skills -s ask-matt -s implement -y`.
16
+
17
+ ## Gate
18
+ Respect HITL: do not `set-status` to `reviewing` verdicts or mint work items without a human if the contract marks them HITL.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: review
3
+ description: Review a software work item. Use when status is reviewing.
4
+ ---
5
+
6
+ # review
7
+
8
+ HITL verdict. Proof under `.spine/reviews/`. Pass:
9
+
10
+ ```
11
+ spine set-status docs/spine/work-items/NN-slug.md done
12
+ ```
13
+
14
+ Bounce:
15
+
16
+ ```
17
+ spine set-status docs/spine/work-items/NN-slug.md changes-requested
18
+ ```
19
+
20
+ Craft: `npx skills add mattpocock/skills -s code-review -y`.
21
+
22
+ ## Gate
23
+ reviewing (HITL). Software profile requires this before done.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: wayfind
3
+ description: Plan with a spine map and tickets. Use when the way to a destination is foggy or multi-session.
4
+ ---
5
+
6
+ # wayfind
7
+
8
+ Planning lives on the map, not on the work item. Load `docs/spine/maps/`, work frontier tickets under `docs/spine/tickets/`. Claim a ticket with the CLI before work.
9
+
10
+ ```
11
+ spine status
12
+ spine new ticket --title "..." --type research
13
+ spine claim tickets/NN-slug.md
14
+ ```
15
+
16
+ Do not vendor Wayfinder. Install craft from skills.sh: `npx skills add mattpocock/skills -s wayfinder -s grilling -s domain-modeling -y`.
17
+
18
+ ## Gate
19
+ No work-item status for planning. Create a work item at `ready` only when the way is clear.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: build
3
+ description: Implement a software work item in doing. Use when the item is claimed and status is doing.
4
+ ---
5
+
6
+ # build
7
+
8
+ ```
9
+ spine claim docs/spine/work-items/NN-slug.md
10
+ spine set-status docs/spine/work-items/NN-slug.md doing
11
+ ```
12
+
13
+ Agents own content. CLI owns metadata. Install craft: `npx skills add mattpocock/skills -s implement -s tdd -s codebase-design -y`.
14
+
15
+ ## Gate
16
+ doing (agent-drivable). Next: checking.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: doctor
3
+ description: Recover mechanical drift in a spine target. Use at session start and when files look wrong.
4
+ ---
5
+
6
+ # doctor
7
+
8
+ ```
9
+ spine doctor
10
+ spine evolve
11
+ ```
12
+
13
+ Doctor auto-fixes stale claims, CLI-owned links, and rollups. It reports unknown statuses, missing spec files, gitignore drift. Never rewrite content sections by hand to fake a fix.
14
+
15
+ ## Gate
16
+ Recovery loop. Not a harness hook.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: eval
3
+ description: Check a software work item against acceptance. Use when status is checking.
4
+ ---
5
+
6
+ # eval
7
+
8
+ Write proof under `.spine/evals/`. Then:
9
+
10
+ ```
11
+ spine set-status docs/spine/work-items/NN-slug.md reviewing
12
+ ```
13
+
14
+ Craft: `npx skills add mattpocock/skills -s qa -y`.
15
+
16
+ ## Gate
17
+ checking (agent-drivable). Software profile requires this before done.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: new
3
+ description: Capture a map ticket or work item via the spine CLI. Use when something new must be recorded in the target.
4
+ ---
5
+
6
+ # new
7
+
8
+ Mint artifacts with the CLI. Do not hand-edit status, owner, claim, links, or numbers.
9
+
10
+ ```
11
+ spine new ticket --title "..." --type grilling
12
+ spine new work-item --title "..." --profile software
13
+ ```
14
+
15
+ Craft skills for interviewing live on skills.sh. Default wire: `mattpocock/skills` `grill-me` / `wayfinder` (`npx skills add mattpocock/skills -s grill-me -s wayfinder -y`). See `docs/spine/wires.yaml`.
16
+
17
+ ## Gate
18
+ creating-work-item is HITL. Tickets start `open`. Work items start `ready`.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: next
3
+ description: Pick the next spine action from the map frontier and work-item board.
4
+ ---
5
+
6
+ # next
7
+
8
+ Run `spine doctor` then `spine status`. Take the first open unblocked unclaimed ticket, or the work item whose status is the next gate.
9
+
10
+ ```
11
+ spine doctor
12
+ spine status
13
+ ```
14
+
15
+ Craft router (optional): `npx skills add mattpocock/skills -s ask-matt -s implement -y`.
16
+
17
+ ## Gate
18
+ Respect HITL: do not `set-status` to `reviewing` verdicts or mint work items without a human if the contract marks them HITL.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: review
3
+ description: Review a software work item. Use when status is reviewing.
4
+ ---
5
+
6
+ # review
7
+
8
+ HITL verdict. Proof under `.spine/reviews/`. Pass:
9
+
10
+ ```
11
+ spine set-status docs/spine/work-items/NN-slug.md done
12
+ ```
13
+
14
+ Bounce:
15
+
16
+ ```
17
+ spine set-status docs/spine/work-items/NN-slug.md changes-requested
18
+ ```
19
+
20
+ Craft: `npx skills add mattpocock/skills -s code-review -y`.
21
+
22
+ ## Gate
23
+ reviewing (HITL). Software profile requires this before done.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: wayfind
3
+ description: Plan with a spine map and tickets. Use when the way to a destination is foggy or multi-session.
4
+ ---
5
+
6
+ # wayfind
7
+
8
+ Planning lives on the map, not on the work item. Load `docs/spine/maps/`, work frontier tickets under `docs/spine/tickets/`. Claim a ticket with the CLI before work.
9
+
10
+ ```
11
+ spine status
12
+ spine new ticket --title "..." --type research
13
+ spine claim tickets/NN-slug.md
14
+ ```
15
+
16
+ Do not vendor Wayfinder. Install craft from skills.sh: `npx skills add mattpocock/skills -s wayfinder -s grilling -s domain-modeling -y`.
17
+
18
+ ## Gate
19
+ No work-item status for planning. Create a work item at `ready` only when the way is clear.
@@ -0,0 +1,7 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.pyc
4
+ .pytest_cache/
5
+ .spine/
6
+ dist/
7
+ *.egg-info/
@@ -0,0 +1,16 @@
1
+ # Implementation notes (this repo is also the first target)
2
+
3
+ Implement spine from [spec.md](spec.md) plus this file. Product code lives here now.
4
+
5
+ ## Every session
6
+
7
+ 1. Read [spec.md](spec.md), [CONTEXT.md](CONTEXT.md).
8
+ 2. Verify: `uv run pytest`.
9
+ 3. CLI owns metadata; agents own content. Binder skills never restate the contract.
10
+ 4. Craft skills come from skills.sh (`npx skills add mattpocock/skills`), not vendored.
11
+
12
+ ## Standing constraints
13
+
14
+ - Harness/agent/platform agnostic. No required plugin API.
15
+ - Auto-evolve: `spine evolve`. Self-recover: `spine doctor`.
16
+ - Do not edit `/Users/akshay/Development/generic-workflows`.
@@ -0,0 +1,57 @@
1
+ # Spine
2
+
3
+ A public, harness-agnostic process spine. Planning and execution survive sessions as files in a target repo. This glossary is for the product; implementation detail does not belong here.
4
+
5
+ ## Language
6
+
7
+ **Spine**:
8
+ The toolkit: a versioned contract, a CLI that owns metadata, binder skills, and a doctor. Installed into a target.
9
+ _Avoid_: Generic Workflows, plugin, pipeline-as-the-product
10
+
11
+ **Target**:
12
+ A git repository `spine` inits. Artifact files live here. They are the source of truth.
13
+ _Avoid_: host, workspace (ambiguous with the agent’s cwd)
14
+
15
+ **Map**:
16
+ The durable planning artifact in the target: destination, notes, decisions-so-far, fog, out of scope. Tickets are its children.
17
+ _Avoid_: board, PRD, roadmap
18
+
19
+ **Ticket**:
20
+ One decision or investigation on a map. Types: research, prototype, grilling, task.
21
+ _Avoid_: issue (overloaded with work item), card
22
+
23
+ **Work item**:
24
+ The durable execution artifact: status, owner, claim, links, next gate.
25
+ _Avoid_: task (overloaded with Wayfinder task tickets and Generic Workflows’ pipeline file), issue
26
+
27
+ **Contract**:
28
+ The versioned machine: statuses, transitions, gates, type profiles. Skills and the CLI reference it; they never restate it.
29
+ _Avoid_: lifecycle.json as a proper noun, config, schema (too generic)
30
+
31
+ **Binder**:
32
+ Concern → skill routing. Skills never restate the contract.
33
+ _Avoid_: router, catalog, palette (unless we later name the user-facing surface)
34
+
35
+ **CLI**:
36
+ Harness-agnostic command-line tool on PATH. It inits a target and is the only writer of machine-driving metadata.
37
+ _Avoid_: plugin, hook, wf.py
38
+
39
+ **Doctor**:
40
+ A CLI command that reports mechanical drift and may auto-fix it. Not a harness hook.
41
+ _Avoid_: health hook, UserPromptSubmit
42
+
43
+ **Software profile**:
44
+ A type profile on the same contract for code work (build / eval / review). Optional relative to the agnostic spine; in v1 spec.
45
+ _Avoid_: the pipeline, 16-status machine
46
+
47
+ **Claim**:
48
+ Solo-first lock on a work item (owner + stale release) so a second agent or human does not require a rewrite.
49
+ _Avoid_: assignee (tracker-specific), lock
50
+
51
+ **Spec tier**:
52
+ Checked-in artifact files in the target (maps, tickets, work items, decisions). Shared with clones.
53
+ _Avoid_: source of truth (the whole target-file set is SSoT, including local execution files on that machine)
54
+
55
+ **Execution tier**:
56
+ Gitignored local files (claims runtime, evals, handoffs, doctor output). Not required for a clone to be correct, required for a running session to resume on that machine.
57
+ _Avoid_: state, cache
@@ -0,0 +1,21 @@
1
+ # Handoff: spine implementation
2
+
3
+ Last updated: 2026-09-19
4
+
5
+ ## Objective
6
+
7
+ v1 spine-cli from spec.md. Auto-evolvable, skills.sh wires, Matt Pocock default pack, doctor recovery.
8
+
9
+ ## Current State
10
+
11
+ Working CLI. `uv run pytest` — 19 passed. Wheel packs binder + contract.
12
+
13
+ Software `checking → reviewing` needs `.spine/evals/` proof named for the item; `reviewing → done` needs `.spine/reviews/`. `spine wire --install` builds `npx skills add <pack> -s …` from `wires.yaml`. Doctor reports missing spec files (README, contract, wires, map) and gitignore drift (no auto-fix). Not published. GitHub not created.
14
+
15
+ Builder queue (SpineDoctor/Binder/Evolve/Serial) died with Metal GPU OOM; do not parallel-spawn local Qwen for this tree.
16
+
17
+ ## Next Steps
18
+
19
+ - Create `ASabale/spine` and publish `spine-cli` only when asked.
20
+ - Do not edit generic-workflows.
21
+ - One small builder at a time if using the local model.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ASabale
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTY OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.