@sleepy_panda_srl/portulan 0.1.3 → 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.
Files changed (76) hide show
  1. package/README.md +6 -5
  2. package/cli/README.md +142 -358
  3. package/cli/advisory.mjs +354 -0
  4. package/cli/comments.mjs +932 -0
  5. package/cli/compile.mjs +1322 -1607
  6. package/cli/context.mjs +883 -0
  7. package/cli/control-chars.mjs +12 -301
  8. package/cli/discover.mjs +17 -574
  9. package/cli/doctor.mjs +224 -1074
  10. package/cli/drills.mjs +68 -502
  11. package/cli/feedback.mjs +16 -237
  12. package/cli/finish.mjs +437 -0
  13. package/cli/form.mjs +644 -0
  14. package/cli/fuzz-shell.mjs +20 -305
  15. package/cli/gate.mjs +7 -199
  16. package/cli/goldens.mjs +26 -184
  17. package/cli/index.mjs +305 -655
  18. package/cli/init.mjs +243 -566
  19. package/cli/inside.mjs +3 -28
  20. package/cli/instructions.mjs +829 -0
  21. package/cli/ledger.mjs +778 -0
  22. package/cli/librarian.mjs +135 -599
  23. package/cli/manifest.mjs +2 -39
  24. package/cli/mutants.mjs +9 -170
  25. package/cli/new.mjs +12 -243
  26. package/cli/pack-identity.mjs +5 -74
  27. package/cli/pack-version.mjs +13 -255
  28. package/cli/plugin-lint.mjs +42 -658
  29. package/cli/portulan.mjs +5 -124
  30. package/cli/recipe-set.mjs +15 -245
  31. package/cli/release-eval.mjs +28 -348
  32. package/cli/review-meter.mjs +17 -258
  33. package/cli/rule-carriers.mjs +12 -175
  34. package/cli/sessions.mjs +82 -0
  35. package/cli/skill-goldens.mjs +10 -176
  36. package/cli/skills-set.mjs +12 -414
  37. package/cli/stop-gate.mjs +83 -514
  38. package/cli/symbols.mjs +1132 -0
  39. package/cli/telemetry.mjs +27 -492
  40. package/cli/upgrade.mjs +171 -314
  41. package/cli/vendor.mjs +146 -476
  42. package/cli/version-carriers.mjs +8 -86
  43. package/core/README.md +1 -1
  44. package/core/engine.md +3 -9
  45. package/core/operating/autonomy.md +1 -1
  46. package/core/operating/context.md +183 -0
  47. package/core/operating/evolution.md +3 -3
  48. package/core/operating/loop.md +13 -20
  49. package/core/operating/memory.md +12 -3
  50. package/core/operating/sessions.md +100 -0
  51. package/core/personas/librarian.md +2 -2
  52. package/core/skills/consolidate/SKILL.md +4 -2
  53. package/core/templates/handoff.md +28 -15
  54. package/core/templates/memory-entry.md +1 -0
  55. package/evals/README.md +255 -845
  56. package/evals/releases/0.2.0.json +146 -0
  57. package/evals/releases/0.2.0.md +67 -0
  58. package/evals/releases/README.md +3 -3
  59. package/package.json +4 -2
  60. package/packs/rituals/checkpoints/README.md +1 -1
  61. package/packs/tools/github/verify/actions-pinned.sh +10 -55
  62. package/spec/README.md +112 -6
  63. package/spec/migrations/0001-repository-declares-its-tree.mjs +1 -26
  64. package/spec/migrations/0002-bundle-fallback-path.mjs +13 -74
  65. package/spec/migrations/0003-handoff-index-not-kept.mjs +66 -0
  66. package/spec/migrations/0004-changelog-fragments.mjs +53 -0
  67. package/spec/migrations/0005-session-log-retired.mjs +69 -0
  68. package/spec/migrations/0006-boot-card.mjs +77 -0
  69. package/spec/migrations/0007-guidance-compiled.mjs +31 -0
  70. package/spec/migrations/0008-card-reading.mjs +55 -0
  71. package/spec/migrations/0009-instruction-sections-on-read.mjs +60 -0
  72. package/spec/migrations/0010-comment-rail.mjs +57 -0
  73. package/spec/migrations/README.md +45 -10
  74. package/spec/pack.schema.json +1 -1
  75. package/spec/slots.md +333 -21
  76. package/spec/workspace.schema.json +145 -4
@@ -1,25 +1,23 @@
1
1
  # Template — Handoff
2
2
 
3
- > A **handoff** records a decision and its *why*, so the next agent — or the next context window —
4
- > inherits the reasoning and not just the result. Write one **at the close of every session** — that part
5
- > is not conditional, and short is fine — and also when compacting, when hitting an iteration cap, or when
6
- > passing work across a persona boundary. Decisions without their why get silently re-litigated or
7
- > reversed. **Drop any section that has nothing to say** — the date and the decisions-with-why are the
8
- > only irreducible parts, and a handoff of five lines is a valid handoff. The date lives in the
9
- > **filename**, leading, in ISO form — `YYYY-MM-DD-{slug}.md` — not in a field inside the document: that
10
- > is what a gate checks and what makes the series sort chronologically. That is what keeps the
11
- > every-session rule from becoming ceremony: it scales down here, inside the artifact, rather than by
12
- > being skipped. _(Provenance: Cognition — handoffs record decisions and rationale. The every-session rule
13
- > and why it is binary rather than discretionary are in `../operating/loop.md`.)_
3
+ > A **handoff** carries the work still open, so the next agent — or the next context window — starts
4
+ > from where things stand rather than from the transcript. Write one when a session ends with work not
5
+ > committed and pushed, when compacting, when hitting an iteration cap, or when passing work across a
6
+ > persona boundary. Work that is committed carries its own why, in its commit message, so a handoff
7
+ > says nothing the diff or a commit already says. **Drop any section with nothing to say**; five lines
8
+ > is a valid handoff. The date leads the **filename**, in ISO form — `YYYY-MM-DD-{slug}.md` — because
9
+ > that is what a gate checks and what sorts the series. _(Provenance: Cognition — handoffs record
10
+ > decisions and their rationale. When one is owed, and why the commit carries the rest:
11
+ > `../operating/loop.md`.)_
12
+ >
13
+ > **The commit a change lands in:** a subject that says what changed, in the present tense and under 72
14
+ > characters; a blank line; a body of a few lines that says why, and what was rejected when that matters.
14
15
 
15
16
  ---
16
17
 
17
18
  # Handoff — {task / thread}
18
19
 
19
- **State.** {where things actually are right now — done, in-progress, blocked — in a few lines.}
20
-
21
- **Decisions + why.** {each decision taken and the reason it was taken; the reasons are the payload.}
22
- - {decision} — because {why}; alternatives considered: {…}.
20
+ **State.** {where things stand: what is done and committed, what is in progress and uncommitted.}
23
21
 
24
22
  **Open questions.** {what is undecided, and who decides it — flag the human-owned ones.}
25
23
 
@@ -27,3 +25,18 @@
27
25
 
28
26
  **Recoverability.** {anything left in a partial state, and how to make it safe; see
29
27
  `../operating/safety.md`.}
28
+
29
+ ---
30
+
31
+ _A filled one, for a session that stopped mid-change:_
32
+
33
+ # Handoff — retry the flaky upload test
34
+
35
+ **State.** The retry wrapper is written and its unit test passes; it is stashed, not committed, because
36
+ the integration suite still fails once in about ten runs.
37
+
38
+ **Open questions.** Whether three attempts is the right cap — the owner of the upload service decides.
39
+
40
+ **Next action.** `git stash pop`, run the integration suite twenty times, and read the one failure's log.
41
+
42
+ **Recoverability.** Nothing was pushed; dropping the stash loses only the wrapper.
@@ -8,6 +8,7 @@
8
8
  ---
9
9
 
10
10
  **type:** rule | decision | reference | glossary
11
+ **dated:** {YYYY-MM-DD — the day this record's text last changed; an edit re-dates it. The per-record cap binds by it where the workspace declares a cutoff}
11
12
  **scope:** {the persona / repo / workspace this belongs to — memory is per-agent, not global}
12
13
  **provenance:** {one of the two forms below — a rule carrying neither is taste, and `doctor` rejects it}
13
14