@bvdm/delano 0.1.5 → 0.1.8

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 (145) hide show
  1. package/.delano/README.md +7 -0
  2. package/.delano/viewer/README.md +19 -0
  3. package/.delano/viewer/public/app.js +818 -0
  4. package/.delano/viewer/public/explorer.svg +3 -0
  5. package/.delano/viewer/public/index.html +21 -0
  6. package/.delano/viewer/public/markdown.svg +6 -0
  7. package/.delano/viewer/public/styles.css +1042 -0
  8. package/.delano/viewer/public/vscode.svg +24 -0
  9. package/.delano/viewer/server.js +389 -0
  10. package/HANDBOOK.md +66 -45
  11. package/README.md +21 -2
  12. package/assets/install-manifest.json +112 -23
  13. package/assets/payload/.agents/README.md +31 -6
  14. package/assets/payload/.agents/adapters/claude/README.md +22 -3
  15. package/assets/payload/.agents/adapters/codex/README.md +22 -3
  16. package/assets/payload/.agents/adapters/opencode/README.md +22 -3
  17. package/assets/payload/.agents/adapters/pi/README.md +22 -3
  18. package/assets/payload/.agents/common/log-safety.js +55 -0
  19. package/assets/payload/.agents/eval-fixtures/skill-output/invalid/missing-evidence/output.json +6 -0
  20. package/assets/payload/.agents/eval-fixtures/skill-output/valid/summary/output.json +7 -0
  21. package/assets/payload/.agents/fixtures/github/status-snapshot.json +6 -0
  22. package/assets/payload/.agents/fixtures/linear/issue-snapshot.json +6 -0
  23. package/assets/payload/.agents/hooks/bash-worktree-fix.sh +2 -1
  24. package/assets/payload/.agents/hooks/post-tool-logger.js +2 -1
  25. package/assets/payload/.agents/hooks/session-tracker.js +0 -0
  26. package/assets/payload/.agents/hooks/user-prompt-logger.js +17 -1
  27. package/assets/payload/.agents/logs/delivery-metrics.md +22 -0
  28. package/assets/payload/.agents/logs/schema.md +20 -1
  29. package/assets/payload/.agents/rules/delivery-modes.md +17 -0
  30. package/assets/payload/.agents/schemas/README.md +22 -0
  31. package/assets/payload/.agents/schemas/artifact-scope.json +237 -0
  32. package/assets/payload/.agents/schemas/artifacts/context.schema.json +11 -0
  33. package/assets/payload/.agents/schemas/artifacts/decision_log.schema.json +12 -0
  34. package/assets/payload/.agents/schemas/artifacts/evidence.schema.json +17 -0
  35. package/assets/payload/.agents/schemas/artifacts/plan.schema.json +83 -0
  36. package/assets/payload/.agents/schemas/artifacts/spec.schema.json +101 -0
  37. package/assets/payload/.agents/schemas/artifacts/task.schema.json +121 -0
  38. package/assets/payload/.agents/schemas/artifacts/update.schema.json +12 -0
  39. package/assets/payload/.agents/schemas/artifacts/workstream.schema.json +66 -0
  40. package/assets/payload/.agents/schemas/evidence-map.json +53 -0
  41. package/assets/payload/.agents/schemas/learning/closeout-learning-proposal.schema.json +20 -0
  42. package/assets/payload/.agents/schemas/learning/delivery-metric-event.schema.json +21 -0
  43. package/assets/payload/.agents/schemas/leases/lease.schema.json +39 -0
  44. package/assets/payload/.agents/schemas/metrics/delivery-event.schema.json +29 -0
  45. package/assets/payload/.agents/schemas/metrics/delivery-events.schema.json +49 -0
  46. package/assets/payload/.agents/schemas/operating-modes.json +42 -0
  47. package/assets/payload/.agents/schemas/status-transitions.json +31 -0
  48. package/assets/payload/.agents/schemas/sync/drift-report.schema.json +25 -0
  49. package/assets/payload/.agents/schemas/sync/drift-taxonomy.json +38 -0
  50. package/assets/payload/.agents/schemas/sync/sync-map.schema.json +39 -0
  51. package/assets/payload/.agents/scripts/README.md +1 -0
  52. package/assets/payload/.agents/scripts/audit-context-files.mjs +54 -0
  53. package/assets/payload/.agents/scripts/audit-context-scoring.mjs +14 -0
  54. package/assets/payload/.agents/scripts/build-drift-report.mjs +133 -0
  55. package/assets/payload/.agents/scripts/check-artifact-schemas.mjs +116 -0
  56. package/assets/payload/.agents/scripts/check-closeout-learning-proposals.mjs +23 -0
  57. package/assets/payload/.agents/scripts/check-context-audit.mjs +61 -0
  58. package/assets/payload/.agents/scripts/check-delivery-metric-events.mjs +35 -0
  59. package/assets/payload/.agents/scripts/check-delivery-metrics.mjs +52 -0
  60. package/assets/payload/.agents/scripts/check-evidence-map.mjs +143 -0
  61. package/assets/payload/.agents/scripts/check-github-status-inspection.mjs +93 -0
  62. package/assets/payload/.agents/scripts/check-github-sync.mjs +159 -0
  63. package/assets/payload/.agents/scripts/check-handoff-summaries.mjs +57 -0
  64. package/assets/payload/.agents/scripts/check-lease-conflicts.mjs +24 -0
  65. package/assets/payload/.agents/scripts/check-lease-contracts.mjs +17 -0
  66. package/assets/payload/.agents/scripts/check-linear-issue-inspection.mjs +63 -0
  67. package/assets/payload/.agents/scripts/check-local-sync-map.mjs +151 -0
  68. package/assets/payload/.agents/scripts/check-log-safety.sh +62 -0
  69. package/assets/payload/.agents/scripts/check-operating-modes.mjs +99 -0
  70. package/assets/payload/.agents/scripts/check-path-standards.sh +1 -1
  71. package/assets/payload/.agents/scripts/check-skill-output-evals.mjs +13 -0
  72. package/assets/payload/.agents/scripts/check-status-transitions.mjs +169 -0
  73. package/assets/payload/.agents/scripts/check-strict-fixtures.mjs +140 -0
  74. package/assets/payload/.agents/scripts/check-sync-schemas.mjs +52 -0
  75. package/assets/payload/.agents/scripts/check-text-safety.mjs +158 -0
  76. package/assets/payload/.agents/scripts/check-worktree-health.mjs +100 -0
  77. package/assets/payload/.agents/scripts/fix-path-standards.sh +1 -1
  78. package/assets/payload/.agents/scripts/git-sparse-download.sh +0 -0
  79. package/assets/payload/.agents/scripts/inspect-github-sync.mjs +108 -0
  80. package/assets/payload/.agents/scripts/lease-manager.mjs +88 -0
  81. package/assets/payload/.agents/scripts/log-event.js +3 -0
  82. package/assets/payload/.agents/scripts/log-event.sh +0 -0
  83. package/assets/payload/.agents/scripts/plan-sync-repairs.mjs +66 -0
  84. package/assets/payload/.agents/scripts/pm/blocked.sh +0 -0
  85. package/assets/payload/.agents/scripts/pm/epic-list.sh +0 -0
  86. package/assets/payload/.agents/scripts/pm/in-progress.sh +0 -0
  87. package/assets/payload/.agents/scripts/pm/init.sh +0 -0
  88. package/assets/payload/.agents/scripts/pm/next.sh +0 -0
  89. package/assets/payload/.agents/scripts/pm/prd-list.sh +0 -0
  90. package/assets/payload/.agents/scripts/pm/search.sh +0 -0
  91. package/assets/payload/.agents/scripts/pm/standup.sh +0 -0
  92. package/assets/payload/.agents/scripts/pm/status.sh +0 -0
  93. package/assets/payload/.agents/scripts/pm/validate.sh +657 -2
  94. package/assets/payload/.agents/scripts/propose-closeout-learning.mjs +20 -0
  95. package/assets/payload/.agents/scripts/query-log.sh +0 -0
  96. package/assets/payload/.agents/scripts/read-local-sync-map.mjs +135 -0
  97. package/assets/payload/.agents/scripts/select-next-task.mjs +22 -0
  98. package/assets/payload/.agents/scripts/summarize-project-metrics.mjs +15 -0
  99. package/assets/payload/.agents/scripts/test-and-log.sh +0 -0
  100. package/assets/payload/.agents/skills/README.md +6 -0
  101. package/assets/payload/.agents/skills/closeout-skill/SKILL.md +3 -0
  102. package/assets/payload/.agents/skills/closeout-skill/references/runbook.md +5 -2
  103. package/assets/payload/.agents/skills/closeout-skill/templates/closure-checklist.md +2 -0
  104. package/assets/payload/.agents/skills/closeout-skill/templates/learning-proposal.md +21 -0
  105. package/assets/payload/.agents/skills/closeout-skill/templates/learning-proposals.md +25 -0
  106. package/assets/payload/.agents/skills/manage-context/SKILL.md +55 -0
  107. package/assets/payload/.agents/skills/manage-context/references/context-audit-checklist.md +26 -0
  108. package/assets/payload/.agents/skills/manage-context/references/runbook.md +26 -0
  109. package/assets/payload/.agents/skills/manage-context/templates/context-debt-report.md +22 -0
  110. package/assets/payload/.agents/skills/manage-context/templates/context-refresh-summary.md +13 -0
  111. package/assets/payload/.agents/skills/onboarding/SKILL.md +49 -0
  112. package/assets/payload/.agents/skills/onboarding/references/agents-md-best-practices.md +76 -0
  113. package/assets/payload/.agents/skills/prototype-skill/SKILL.md +51 -0
  114. package/assets/payload/.agents/skills/prototype-skill/references/probe-design-checklist.md +26 -0
  115. package/assets/payload/.agents/skills/prototype-skill/references/runbook.md +27 -0
  116. package/assets/payload/.agents/skills/prototype-skill/templates/probe-approval-recommendation.md +13 -0
  117. package/assets/payload/.agents/skills/prototype-skill/templates/probe-findings.md +16 -0
  118. package/assets/payload/.agents/validation-fixtures/strict/invalid/broken-dependencies/dependency.md +18 -0
  119. package/assets/payload/.agents/validation-fixtures/strict/invalid/broken-dependencies/task.md +24 -0
  120. package/assets/payload/.agents/validation-fixtures/strict/invalid/invalid-transition/task.md +20 -0
  121. package/assets/payload/.agents/validation-fixtures/strict/invalid/missing-evidence/task.md +27 -0
  122. package/assets/payload/.agents/validation-fixtures/strict/invalid/path-leak/task.md +27 -0
  123. package/assets/payload/.agents/validation-fixtures/strict/invalid/stale-context/context.md +9 -0
  124. package/assets/payload/.agents/validation-fixtures/strict/manifest.json +11 -0
  125. package/assets/payload/.agents/validation-fixtures/strict/valid/minimal-project/task.md +27 -0
  126. package/assets/payload/.delano/viewer/README.md +19 -0
  127. package/assets/payload/.delano/viewer/public/app.js +818 -0
  128. package/assets/payload/.delano/viewer/public/explorer.svg +3 -0
  129. package/assets/payload/.delano/viewer/public/index.html +21 -0
  130. package/assets/payload/.delano/viewer/public/markdown.svg +6 -0
  131. package/assets/payload/.delano/viewer/public/styles.css +1042 -0
  132. package/assets/payload/.delano/viewer/public/vscode.svg +24 -0
  133. package/assets/payload/.delano/viewer/server.js +389 -0
  134. package/assets/payload/.project/templates/plan.md +1 -1
  135. package/assets/payload/.project/templates/spec.md +1 -1
  136. package/assets/payload/.project/templates/task.md +1 -0
  137. package/assets/payload/HANDBOOK.md +66 -45
  138. package/assets/payload/install-delano.sh +0 -0
  139. package/install-delano.sh +0 -0
  140. package/package.json +31 -2
  141. package/src/cli/commands/onboarding.js +29 -0
  142. package/src/cli/commands/viewer.js +81 -0
  143. package/src/cli/index.js +20 -0
  144. package/src/cli/lib/install.js +1 -0
  145. package/src/cli/lib/onboarding.js +243 -0
package/HANDBOOK.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  ## First Edition, v3
4
4
 
5
- Version: 3.1
6
- Last updated: 2026-04-03
5
+ Version: 3.2
6
+ Last updated: 2026-05-04
7
7
 
8
8
  ---
9
9
 
@@ -56,7 +56,7 @@ Its core objective is:
56
56
 
57
57
  ### 1.1 Primary flow
58
58
 
59
- **Outcome -> Draft Spec -> Probe Decision -> Approved Spec -> Delivery Project -> Workstreams -> Tasks -> Linear Issues -> PRs -> Release -> Learnings**
59
+ **Outcome -> Planned Spec -> Probe Decision -> Active Spec -> Delivery Project -> Workstreams -> Tasks -> Linear Issues -> PRs -> Release -> Learnings**
60
60
 
61
61
  ### 1.2 Design principles
62
62
 
@@ -201,7 +201,7 @@ Recommended naming:
201
201
 
202
202
  Operational rule:
203
203
 
204
- - Every task issue must carry one workstream identifier.
204
+ - Every task issue must carry one workstream identifier in task frontmatter (`workstream: WS-A`) and the corresponding Linear workstream label (`ws-a`).
205
205
 
206
206
  #### 4.2.5 Task -> Issue
207
207
 
@@ -296,7 +296,7 @@ A coding agent is Delano-compatible if it can:
296
296
  name: <project-name>
297
297
  slug: <kebab-case>
298
298
  owner: <person-or-team>
299
- status: draft|approved|active|complete|canceled
299
+ status: planned|active|complete|deferred
300
300
  created: <ISO8601 UTC>
301
301
  updated: <ISO8601 UTC>
302
302
  outcome: <measurable target>
@@ -325,13 +325,13 @@ Required sections:
325
325
 
326
326
  ```yaml
327
327
  name: <project-name>
328
- status: planned|in-progress|done|canceled
328
+ status: planned|active|done|deferred
329
329
  lead: <person>
330
330
  created: <ISO8601 UTC>
331
331
  updated: <ISO8601 UTC>
332
332
  linear_project_id: <id>
333
333
  risk_level: low|medium|high
334
- spec_status_at_plan_time: approved|active
334
+ spec_status_at_plan_time: planned|active|complete|deferred
335
335
  ```
336
336
 
337
337
  Required sections:
@@ -351,7 +351,8 @@ Required sections:
351
351
  ```yaml
352
352
  id: T-001
353
353
  name: <task-title>
354
- status: backlog|ready|in-progress|review|done|blocked|canceled
354
+ status: ready|in-progress|blocked|done|deferred
355
+ workstream: WS-A
355
356
  created: <ISO8601 UTC>
356
357
  updated: <ISO8601 UTC>
357
358
  linear_issue_id: <id-or-empty>
@@ -360,8 +361,8 @@ github_pr: <url-or-empty>
360
361
  depends_on: []
361
362
  conflicts_with: []
362
363
  parallel: true|false
363
- priority: low|medium|high|urgent
364
- estimate: XS|S|M|L|XL
364
+ priority: low|medium|high
365
+ estimate: S|M|L|XL
365
366
  ```
366
367
 
367
368
  Required sections:
@@ -376,7 +377,7 @@ Required sections:
376
377
 
377
378
  - `created` immutable
378
379
  - `updated` real UTC system timestamp
379
- - probe decision explicit before spec approval
380
+ - probe decision explicit before spec activation
380
381
  - dependency graph acyclic before execution
381
382
  - no absolute path leakage in shared output
382
383
 
@@ -384,66 +385,71 @@ Required sections:
384
385
 
385
386
  ## 7) Status models and transition policy
386
387
 
387
- ### 7.1 Why expanded task states exist
388
+ ### 7.1 Why compact runtime states exist
388
389
 
389
- Expanded states solve execution ambiguity:
390
+ The v0.2 runtime uses compact status sets that are enforced by schemas and validation:
390
391
 
391
- - `backlog` vs `ready` separates unsized ideas from executable work
392
- - `review` enforces handoff before closure
393
- - `blocked` exposes dependency constraints explicitly
392
+ - `planned` means a spec, plan, or workstream is defined but not actively being executed.
393
+ - `ready` means a task is executable and should not carry unresolved local dependencies.
394
+ - `in-progress` means implementation has started.
395
+ - `blocked` exposes dependency constraints explicitly.
396
+ - `done` and `complete` are terminal success states for delivery plans/tasks and specs respectively.
397
+ - `deferred` is the terminal non-completion state for postponed or canceled work.
398
+
399
+ Idea triage belongs outside executable task files. Review is a gate recorded in evidence, updates, quality notes, or PR state; it is not a canonical v0.2 task status.
394
400
 
395
401
  ### 7.2 Lifecycle definitions
396
402
 
397
403
  #### Spec
398
404
 
399
- `draft -> approved -> active -> complete`
400
- optional terminal: `canceled`
405
+ `planned -> active -> complete`
406
+ optional terminal: `deferred`
401
407
 
402
- Probe decision rule while spec is `draft`:
408
+ Probe decision rule while spec is `planned`:
403
409
 
404
- - `probe_required: false` allows approval once other discovery gates pass
405
- - `probe_required: true` requires a Prototype Probe and recorded findings before approval
410
+ - `probe_required: false` allows activation once other discovery gates pass.
411
+ - `probe_required: true` requires a Prototype Probe and recorded findings before activation.
406
412
 
407
413
  #### Delivery Project
408
414
 
409
- `planned -> in-progress -> done`
410
- optional terminal: `canceled`
415
+ `planned -> active -> done`
416
+ optional terminal: `deferred`
411
417
 
412
418
  #### Task
413
419
 
414
- `backlog -> ready -> in-progress -> review -> done`
415
- optional branches: `blocked`, `canceled`
420
+ `ready -> in-progress -> done`
421
+ optional branches: `blocked`, `deferred`
416
422
 
417
423
  ### 7.3 Transition policy
418
424
 
419
- - No `in-progress` with unmet hard dependencies.
425
+ - No `ready`, `in-progress`, or `done` transition with unmet local dependencies.
420
426
  - No `done` without evidence completion.
421
427
  - No project `done` with unresolved required tasks.
422
- - No spec `approved` without explicit probe decision fields.
423
- - No spec `approved` with unresolved required probe findings.
428
+ - No spec `active` without explicit probe decision fields.
429
+ - No spec `active` with unresolved required probe findings.
424
430
  - No spec `complete` without outcome review.
425
431
 
432
+ Current artifact scans and proposed transitions are strict for local task dependencies: `ready`, `in-progress`, and `done` tasks fail validation when they depend on unresolved local tasks.
433
+
426
434
  ### 7.4 Review semantics
427
435
 
428
- `review` may include one or more:
436
+ Review is a quality gate before closure. It may include one or more:
429
437
 
430
438
  - code review
431
439
  - quality gate verification
432
440
  - product acceptance for user-visible changes
433
441
 
434
- Teams must define exact review semantics in local policy.
442
+ Teams must define exact review semantics in local policy and record the result in evidence, updates, or PR state.
435
443
 
436
444
  ### 7.5 Explicit Delano -> Linear status mapping
437
445
 
438
446
  | Delano task status | Preferred Linear state |
439
447
  |---|---|
440
- | backlog | Triage or Backlog |
441
448
  | ready | Todo |
442
449
  | in-progress | In Progress |
443
- | review | In Review |
444
450
  | done | Done |
445
451
  | blocked | Blocked (if exists) or Todo + blocked relation/label |
446
- | canceled | Canceled |
452
+ | deferred | Canceled, Icebox, or Backlog depending on team policy |
447
453
 
448
454
  If team workflow names differ, maintain this semantic mapping in sync rules.
449
455
 
@@ -458,6 +464,17 @@ If team workflow names differ, maintain this semantic mapping in sync rules.
458
464
  - **Rules**: constraints and policy
459
465
  - **Hooks**: runtime tracking and guardrails
460
466
 
467
+ ### 8.8 v0.2 runtime foundation
468
+
469
+ v0.2 adds enforceable local runtime surfaces around the handbook process:
470
+
471
+ - **Operating modes**: Mode 0 patch, Mode 1 scoped change, Mode 2 feature, Mode 3 uncertain feature, and Mode 4 multi-stream. Modes are additive hints for task depth and required proof, not a reason to skip safety gates.
472
+ - **Contract validation**: schemas and validators cover artifact scope, schema shape, operating modes, status transitions, evidence maps, strict fixtures, sync scaffolding, leases, metrics, text safety, context audit, and skill-output evals.
473
+ - **Evidence expectations**: done tasks need checked acceptance criteria plus implementation or validation evidence. v0.2 evidence mapping remains markdown-based; full criterion-to-ledger instance validation is a later maturity gate.
474
+ - **Dry-run sync**: GitHub and Linear sync surfaces inspect, classify drift, and produce repair plans without remote mutation unless a future explicit apply gate is approved.
475
+ - **Lease semantics**: multi-agent work uses leases with conflict zones, lifecycle state, and handoff summaries. Conflict checks must run before overlapping work proceeds.
476
+ - **Release gates**: `npm run build:assets`, package-manifest drift checks, PM validation, and `npm test` are the local release baseline. Formal CI publishing, enterprise state-machine orchestration, and non-mocked Linear behavior remain later maturity gates.
477
+
461
478
  ### 8.2 Skill contract standard
462
479
 
463
480
  Each skill must define:
@@ -476,7 +493,7 @@ Each skill must define:
476
493
 
477
494
  ```yaml
478
495
  name: breakdown-skill
479
- intent: decompose approved plan into atomic tasks
496
+ intent: decompose active plan into atomic tasks
480
497
  inputs:
481
498
  - spec_path
482
499
  - plan_path
@@ -549,6 +566,7 @@ script_hooks:
549
566
  | `query-log.sh` | query change stream |
550
567
  | `test-and-log.sh` | capture test execution logs |
551
568
  | `check-path-standards.sh` | path/privacy enforcement |
569
+ | `check-text-safety.mjs` | hidden/bidirectional Unicode control enforcement |
552
570
  | `fix-path-standards.sh` | path normalization |
553
571
  | `git-sparse-download.sh` | sparse external resource retrieval |
554
572
 
@@ -598,7 +616,7 @@ This keeps rapid learning without weakening team governance.
598
616
 
599
617
  **Goal**
600
618
 
601
- - define a measurable outcome, draft the Spec, and make the probe decision explicit
619
+ - define a measurable outcome, create the planned Spec, and make the probe decision explicit
602
620
 
603
621
  **Entry criteria**
604
622
 
@@ -611,7 +629,7 @@ This keeps rapid learning without weakening team governance.
611
629
 
612
630
  **Exit artifacts**
613
631
 
614
- - drafted `spec.md` with uncertainty and probe decision recorded
632
+ - planned `spec.md` with uncertainty and probe decision recorded
615
633
 
616
634
  **Gate**
617
635
 
@@ -624,29 +642,30 @@ This keeps rapid learning without weakening team governance.
624
642
 
625
643
  **Goal**
626
644
 
627
- - retire or bound material uncertainty before spec approval
645
+ - retire or bound material uncertainty before spec activation
628
646
 
629
647
  **Entry criteria**
630
648
 
631
- - `spec.md` is still `draft`
649
+ - `spec.md` is still `planned`
632
650
  - `probe_required: true`
633
651
 
634
652
  **Primary components**
635
653
 
654
+ - skill: `prototype-skill`
636
655
  - discovery artifacts from `spec.md`
637
656
  - targeted prototype commands or narrow experiments
638
657
  - `pm/validate.sh` if probe findings mutate contracts
639
658
 
640
659
  **Exit artifacts**
641
660
 
642
- - updated draft `spec.md`
643
- - probe findings and approval recommendation
661
+ - updated planned `spec.md`
662
+ - probe findings and activation recommendation
644
663
 
645
664
  **Gate**
646
665
 
647
666
  - probe findings recorded
648
667
  - touched surfaces and footguns explicit
649
- - approval recommendation clear
668
+ - activation recommendation clear
650
669
 
651
670
  ### Stage C: Planning
652
671
 
@@ -656,7 +675,7 @@ This keeps rapid learning without weakening team governance.
656
675
 
657
676
  **Entry criteria**
658
677
 
659
- - `spec.md` approved
678
+ - `spec.md` active
660
679
 
661
680
  **Primary components**
662
681
 
@@ -979,6 +998,7 @@ Every update should answer:
979
998
  - immutable creation timestamps
980
999
  - UTC timestamp policy
981
1000
  - path privacy enforcement
1001
+ - hidden/bidirectional Unicode control enforcement
982
1002
  - GitHub remote safety checks
983
1003
 
984
1004
  ### 14.2 Default team policy pack
@@ -1171,7 +1191,7 @@ This section is designed for live planning and execution meetings.
1171
1191
  name: <project-name>
1172
1192
  slug: <kebab-case>
1173
1193
  owner: <person-or-team>
1174
- status: draft
1194
+ status: planned
1175
1195
  created: <ISO8601 UTC>
1176
1196
  updated: <ISO8601 UTC>
1177
1197
  outcome: <measurable target>
@@ -1222,7 +1242,7 @@ created: <ISO8601 UTC>
1222
1242
  updated: <ISO8601 UTC>
1223
1243
  linear_project_id:
1224
1244
  risk_level: <low|medium|high>
1225
- spec_status_at_plan_time: <approved|active>
1245
+ spec_status_at_plan_time: <planned|active|complete|deferred>
1226
1246
  ---
1227
1247
 
1228
1248
  # Delivery Plan: <project-name>
@@ -1277,6 +1297,7 @@ updated: <ISO8601 UTC>
1277
1297
  id: T-001
1278
1298
  name: <task-title>
1279
1299
  status: ready
1300
+ workstream: WS-A
1280
1301
  created: <ISO8601 UTC>
1281
1302
  updated: <ISO8601 UTC>
1282
1303
  linear_issue_id:
@@ -1424,7 +1445,7 @@ For each active epic scope:
1424
1445
 
1425
1446
  #### Step 4: map statuses
1426
1447
 
1427
- - `open` -> `backlog` or `ready` depending on readiness
1448
+ - `open` -> `ready` when executable, or `deferred` when not actionable in the current delivery scope
1428
1449
  - `in-progress` -> `in-progress`
1429
1450
  - `closed` -> `done`
1430
1451
 
package/README.md CHANGED
@@ -10,13 +10,13 @@ Delano is an agent-agnostic delivery runtime. It keeps planning, execution, and
10
10
  - `.claude/` is a compatibility mirror of `.agents/`, not a second runtime.
11
11
  - `.delano/` is an optional UI layer.
12
12
 
13
- The npm package is intentionally thin. It distributes the approved runtime payload and wraps the existing shell-based PM scripts. It does not replace the handbook, the file contracts, or the underlying bash/Python execution layer.
13
+ The npm package is intentionally thin. It distributes the approved runtime payload, includes the read-only viewer UI, and wraps the existing shell-based PM scripts. It does not replace the handbook, the file contracts, or the underlying bash/Python execution layer.
14
14
 
15
15
  ## Delano CLI
16
16
 
17
17
  - Package: `@bvdm/delano`
18
18
  - Binary: `delano`
19
- - Commands: `install`, `init`, `validate`, `status`, `next`
19
+ - Commands: `onboarding`, `install`, `viewer`, `init`, `validate`, `status`, `next`
20
20
  - Primary v1.1 goal: bootstrap a repo safely, then stay out of the way
21
21
 
22
22
  ## One-command bootstrap
@@ -59,6 +59,7 @@ Typical flow in a repository:
59
59
  ```bash
60
60
  cd /path/to/repo
61
61
  delano install --yes
62
+ delano viewer
62
63
  delano validate
63
64
  delano init <slug> "<Project Name>" [owner] [lead]
64
65
  ```
@@ -66,6 +67,7 @@ delano init <slug> "<Project Name>" [owner] [lead]
66
67
  Command intent:
67
68
 
68
69
  - `delano install` bootstraps the Delano runtime into the current repository
70
+ - `delano viewer` launches the read-only local UI for `.project` contracts
69
71
  - `delano validate` checks whether the runtime and required assets are in place
70
72
  - `delano init` creates a delivery project inside a repository that already has Delano installed
71
73
 
@@ -84,9 +86,19 @@ Notes:
84
86
 
85
87
  ## How to use Delano after install
86
88
 
89
+ Recommended first step:
90
+
91
+ ```bash
92
+ delano onboarding
93
+ ```
94
+
95
+ `delano onboarding` searches upward for `AGENTS.md`, asks for explicit approval before it analyzes anything, and prints recommendations using the packaged onboarding skill rubric. It does not edit `AGENTS.md` on its own.
96
+
87
97
  If you bootstrap with one-shot `npx`, keep using `npx` for wrapper commands:
88
98
 
89
99
  ```bash
100
+ npx -y @bvdm/delano@latest onboarding --approve-agents-analysis
101
+ npx -y @bvdm/delano@latest viewer
90
102
  npx -y @bvdm/delano@latest validate
91
103
  npx -y @bvdm/delano@latest status
92
104
  npx -y @bvdm/delano@latest next -- --all
@@ -95,6 +107,8 @@ npx -y @bvdm/delano@latest next -- --all
95
107
  If the package is installed locally or globally, run these inside the target repository:
96
108
 
97
109
  ```bash
110
+ delano onboarding
111
+ delano viewer
98
112
  delano validate
99
113
  delano status
100
114
  delano next -- --all
@@ -109,6 +123,8 @@ bash .agents/scripts/pm/status.sh
109
123
  bash .agents/scripts/pm/next.sh --all
110
124
  ```
111
125
 
126
+ The viewer is packaged with `@bvdm/delano` and serves the selected repository's `.project` files read-only. It defaults to `http://127.0.0.1:3977`; set `DELANO_VIEWER_PORT` or `PORT` to use another port.
127
+
112
128
  ## Required dependencies
113
129
 
114
130
  Delano v1.1 assumes these tools are available:
@@ -132,7 +148,9 @@ The CLI does not bundle its own shell or Python runtime.
132
148
  - it does not install or overwrite repo-root Git config files such as `.gitignore` or `.gitattributes`
133
149
 
134
150
  The base install payload intentionally excludes top-level adapter entry docs such as `AGENTS.md`, `CLAUDE.md`, `CODEX.md`, `OPENCODE.md`, and `PI.md`. Those remain opt-in only.
151
+ The base install payload includes `.delano/`, including the read-only viewer UI.
135
152
  The installable `.project/context/` pack is seeded from generic templates during packaging; it does not ship Delano's own repo-specific context files into consumer repositories.
153
+ After install, the recommended first step is `delano onboarding`, which requires explicit approval before it reviews `AGENTS.md`.
136
154
 
137
155
  ## Optional AGENTS.md / CLAUDE.md snippet
138
156
 
@@ -153,6 +171,7 @@ When working in this repository:
153
171
  - use the Delano status model and evidence discipline from `HANDBOOK.md`
154
172
  - keep sync and quality gates aligned with the handbook
155
173
  - use `delano init <slug> "<Project Name>" [owner] [lead]` to scaffold a new delivery project when needed
174
+ - use `delano viewer` to inspect `.project/` through the read-only local UI
156
175
  ```
157
176
 
158
177
  ## v1.1 boundaries
@@ -1,32 +1,88 @@
1
1
  {
2
2
  "version": 2,
3
3
  "files": [
4
+ ".agents/README.md",
4
5
  ".agents/adapters/claude/README.md",
5
6
  ".agents/adapters/codex/README.md",
6
7
  ".agents/adapters/opencode/README.md",
7
8
  ".agents/adapters/pi/README.md",
8
9
  ".agents/common/README.md",
10
+ ".agents/common/log-safety.js",
11
+ ".agents/eval-fixtures/skill-output/invalid/missing-evidence/output.json",
12
+ ".agents/eval-fixtures/skill-output/valid/summary/output.json",
13
+ ".agents/fixtures/github/status-snapshot.json",
14
+ ".agents/fixtures/linear/issue-snapshot.json",
15
+ ".agents/hooks/README.md",
9
16
  ".agents/hooks/bash-worktree-fix.sh",
10
17
  ".agents/hooks/post-tool-logger.js",
11
- ".agents/hooks/README.md",
12
18
  ".agents/hooks/session-tracker.js",
13
19
  ".agents/hooks/user-prompt-logger.js",
14
20
  ".agents/logs/.gitkeep",
21
+ ".agents/logs/delivery-metrics.md",
15
22
  ".agents/logs/schema.md",
16
- ".agents/README.md",
23
+ ".agents/rules/README.md",
17
24
  ".agents/rules/agent-coordination.md",
18
25
  ".agents/rules/datetime.md",
26
+ ".agents/rules/delivery-modes.md",
19
27
  ".agents/rules/frontmatter-operations.md",
20
28
  ".agents/rules/github-operations.md",
21
29
  ".agents/rules/path-standards.md",
22
- ".agents/rules/README.md",
23
30
  ".agents/rules/test-execution.md",
24
31
  ".agents/rules/worktree-operations.md",
32
+ ".agents/schemas/README.md",
33
+ ".agents/schemas/artifact-scope.json",
34
+ ".agents/schemas/artifacts/context.schema.json",
35
+ ".agents/schemas/artifacts/decision_log.schema.json",
36
+ ".agents/schemas/artifacts/evidence.schema.json",
37
+ ".agents/schemas/artifacts/plan.schema.json",
38
+ ".agents/schemas/artifacts/spec.schema.json",
39
+ ".agents/schemas/artifacts/task.schema.json",
40
+ ".agents/schemas/artifacts/update.schema.json",
41
+ ".agents/schemas/artifacts/workstream.schema.json",
42
+ ".agents/schemas/evidence-map.json",
43
+ ".agents/schemas/learning/closeout-learning-proposal.schema.json",
44
+ ".agents/schemas/learning/delivery-metric-event.schema.json",
45
+ ".agents/schemas/leases/lease.schema.json",
46
+ ".agents/schemas/metrics/delivery-event.schema.json",
47
+ ".agents/schemas/metrics/delivery-events.schema.json",
48
+ ".agents/schemas/operating-modes.json",
49
+ ".agents/schemas/status-transitions.json",
50
+ ".agents/schemas/sync/drift-report.schema.json",
51
+ ".agents/schemas/sync/drift-taxonomy.json",
52
+ ".agents/schemas/sync/sync-map.schema.json",
53
+ ".agents/scripts/README.md",
54
+ ".agents/scripts/audit-context-files.mjs",
55
+ ".agents/scripts/audit-context-scoring.mjs",
56
+ ".agents/scripts/build-drift-report.mjs",
57
+ ".agents/scripts/check-artifact-schemas.mjs",
58
+ ".agents/scripts/check-closeout-learning-proposals.mjs",
59
+ ".agents/scripts/check-context-audit.mjs",
60
+ ".agents/scripts/check-delivery-metric-events.mjs",
61
+ ".agents/scripts/check-delivery-metrics.mjs",
62
+ ".agents/scripts/check-evidence-map.mjs",
63
+ ".agents/scripts/check-github-status-inspection.mjs",
64
+ ".agents/scripts/check-github-sync.mjs",
65
+ ".agents/scripts/check-handoff-summaries.mjs",
66
+ ".agents/scripts/check-lease-conflicts.mjs",
67
+ ".agents/scripts/check-lease-contracts.mjs",
68
+ ".agents/scripts/check-linear-issue-inspection.mjs",
69
+ ".agents/scripts/check-local-sync-map.mjs",
70
+ ".agents/scripts/check-log-safety.sh",
71
+ ".agents/scripts/check-operating-modes.mjs",
25
72
  ".agents/scripts/check-path-standards.sh",
73
+ ".agents/scripts/check-skill-output-evals.mjs",
74
+ ".agents/scripts/check-status-transitions.mjs",
75
+ ".agents/scripts/check-strict-fixtures.mjs",
76
+ ".agents/scripts/check-sync-schemas.mjs",
77
+ ".agents/scripts/check-text-safety.mjs",
78
+ ".agents/scripts/check-worktree-health.mjs",
26
79
  ".agents/scripts/fix-path-standards.sh",
27
80
  ".agents/scripts/git-sparse-download.sh",
81
+ ".agents/scripts/inspect-github-sync.mjs",
82
+ ".agents/scripts/lease-manager.mjs",
28
83
  ".agents/scripts/log-event.js",
29
84
  ".agents/scripts/log-event.sh",
85
+ ".agents/scripts/plan-sync-repairs.mjs",
30
86
  ".agents/scripts/pm/blocked.sh",
31
87
  ".agents/scripts/pm/epic-list.sh",
32
88
  ".agents/scripts/pm/in-progress.sh",
@@ -37,44 +93,87 @@
37
93
  ".agents/scripts/pm/standup.sh",
38
94
  ".agents/scripts/pm/status.sh",
39
95
  ".agents/scripts/pm/validate.sh",
96
+ ".agents/scripts/propose-closeout-learning.mjs",
40
97
  ".agents/scripts/query-log.sh",
41
- ".agents/scripts/README.md",
98
+ ".agents/scripts/read-local-sync-map.mjs",
99
+ ".agents/scripts/select-next-task.mjs",
100
+ ".agents/scripts/summarize-project-metrics.mjs",
42
101
  ".agents/scripts/test-and-log.sh",
43
102
  ".agents/skills/.gitkeep",
44
- ".agents/skills/breakdown-skill/references/runbook.md",
103
+ ".agents/skills/README.md",
45
104
  ".agents/skills/breakdown-skill/SKILL.md",
105
+ ".agents/skills/breakdown-skill/references/runbook.md",
46
106
  ".agents/skills/breakdown-skill/templates/ambiguity-report.md",
47
107
  ".agents/skills/breakdown-skill/templates/task-batch-summary.md",
48
- ".agents/skills/closeout-skill/references/runbook.md",
49
108
  ".agents/skills/closeout-skill/SKILL.md",
109
+ ".agents/skills/closeout-skill/references/runbook.md",
50
110
  ".agents/skills/closeout-skill/templates/closure-checklist.md",
111
+ ".agents/skills/closeout-skill/templates/learning-proposal.md",
112
+ ".agents/skills/closeout-skill/templates/learning-proposals.md",
51
113
  ".agents/skills/closeout-skill/templates/outcome-review.md",
52
- ".agents/skills/discovery-skill/references/runbook.md",
53
114
  ".agents/skills/discovery-skill/SKILL.md",
115
+ ".agents/skills/discovery-skill/references/runbook.md",
54
116
  ".agents/skills/discovery-skill/templates/clarification-questions.md",
55
117
  ".agents/skills/discovery-skill/templates/discovery-summary.md",
56
- ".agents/skills/execution-skill/references/runbook.md",
57
118
  ".agents/skills/execution-skill/SKILL.md",
119
+ ".agents/skills/execution-skill/references/runbook.md",
58
120
  ".agents/skills/execution-skill/templates/blocker-update.md",
59
121
  ".agents/skills/execution-skill/templates/stream-update.md",
60
- ".agents/skills/learning-skill/references/runbook.md",
61
122
  ".agents/skills/learning-skill/SKILL.md",
123
+ ".agents/skills/learning-skill/references/runbook.md",
62
124
  ".agents/skills/learning-skill/templates/improvement-backlog.md",
63
125
  ".agents/skills/learning-skill/templates/retrospective.md",
64
- ".agents/skills/planning-skill/references/runbook.md",
126
+ ".agents/skills/manage-context/SKILL.md",
127
+ ".agents/skills/manage-context/references/context-audit-checklist.md",
128
+ ".agents/skills/manage-context/references/runbook.md",
129
+ ".agents/skills/manage-context/templates/context-debt-report.md",
130
+ ".agents/skills/manage-context/templates/context-refresh-summary.md",
131
+ ".agents/skills/onboarding/SKILL.md",
132
+ ".agents/skills/onboarding/references/agents-md-best-practices.md",
65
133
  ".agents/skills/planning-skill/SKILL.md",
134
+ ".agents/skills/planning-skill/references/runbook.md",
66
135
  ".agents/skills/planning-skill/templates/architecture-decision.md",
67
136
  ".agents/skills/planning-skill/templates/workstream-definition.md",
68
- ".agents/skills/quality-skill/references/runbook.md",
137
+ ".agents/skills/prototype-skill/SKILL.md",
138
+ ".agents/skills/prototype-skill/references/probe-design-checklist.md",
139
+ ".agents/skills/prototype-skill/references/runbook.md",
140
+ ".agents/skills/prototype-skill/templates/probe-approval-recommendation.md",
141
+ ".agents/skills/prototype-skill/templates/probe-findings.md",
69
142
  ".agents/skills/quality-skill/SKILL.md",
143
+ ".agents/skills/quality-skill/references/runbook.md",
70
144
  ".agents/skills/quality-skill/templates/gate-decision.md",
71
145
  ".agents/skills/quality-skill/templates/quality-evidence.md",
72
- ".agents/skills/README.md",
73
- ".agents/skills/sync-skill/references/runbook.md",
74
146
  ".agents/skills/sync-skill/SKILL.md",
147
+ ".agents/skills/sync-skill/references/runbook.md",
75
148
  ".agents/skills/sync-skill/templates/conflict-resolution-actions.md",
76
149
  ".agents/skills/sync-skill/templates/drift-report.md",
150
+ ".agents/validation-fixtures/strict/invalid/broken-dependencies/dependency.md",
151
+ ".agents/validation-fixtures/strict/invalid/broken-dependencies/task.md",
152
+ ".agents/validation-fixtures/strict/invalid/invalid-transition/task.md",
153
+ ".agents/validation-fixtures/strict/invalid/missing-evidence/task.md",
154
+ ".agents/validation-fixtures/strict/invalid/path-leak/task.md",
155
+ ".agents/validation-fixtures/strict/invalid/stale-context/context.md",
156
+ ".agents/validation-fixtures/strict/manifest.json",
157
+ ".agents/validation-fixtures/strict/valid/minimal-project/task.md",
77
158
  ".delano/README.md",
159
+ ".delano/viewer/README.md",
160
+ ".delano/viewer/server.js",
161
+ ".delano/viewer/public/app.js",
162
+ ".delano/viewer/public/explorer.svg",
163
+ ".delano/viewer/public/index.html",
164
+ ".delano/viewer/public/markdown.svg",
165
+ ".delano/viewer/public/vscode.svg",
166
+ ".delano/viewer/public/styles.css",
167
+ ".project/projects/.gitkeep",
168
+ ".project/registry/linear-map.json",
169
+ ".project/registry/migration-map.json",
170
+ ".project/templates/completion-summary.md",
171
+ ".project/templates/plan.md",
172
+ ".project/templates/progress-update.md",
173
+ ".project/templates/spec.md",
174
+ ".project/templates/task.md",
175
+ ".project/templates/workstream.md",
176
+ "HANDBOOK.md",
78
177
  {
79
178
  "source": "assets/templates/context/gui-testing.md",
80
179
  "target": ".project/context/gui-testing.md"
@@ -115,16 +214,6 @@
115
214
  "source": "assets/templates/context/tech-context.md",
116
215
  "target": ".project/context/tech-context.md"
117
216
  },
118
- ".project/projects/.gitkeep",
119
- ".project/registry/linear-map.json",
120
- ".project/registry/migration-map.json",
121
- ".project/templates/completion-summary.md",
122
- ".project/templates/plan.md",
123
- ".project/templates/progress-update.md",
124
- ".project/templates/spec.md",
125
- ".project/templates/task.md",
126
- ".project/templates/workstream.md",
127
- "HANDBOOK.md",
128
217
  "install-delano.sh"
129
218
  ]
130
219
  }
@@ -2,11 +2,36 @@
2
2
 
3
3
  Canonical shared runtime for Delano.
4
4
 
5
- - `scripts/`, `rules/`, `hooks/`, `skills/`, `logs/` -> shared Delano runtime assets
6
- - `adapters/claude/` -> Claude adapter notes
7
- - `adapters/codex/` -> Codex adapter notes
8
- - `adapters/opencode/` -> OpenCode adapter notes
9
- - `adapters/pi/` -> Pi adapter notes
10
- - `common/` -> shared adapter docs/policies
5
+ ## Source-of-truth map
6
+
7
+ - Root agent workflow and boundaries: `AGENTS.md`
8
+ - Process and operator handbook: `HANDBOOK.md`
9
+ - Delivery contracts and evidence: `.project/`
10
+ - Runtime scripts: `.agents/scripts/`
11
+ - Shared rules: `.agents/rules/`
12
+ - Hooks: `.agents/hooks/`
13
+ - Skills: `.agents/skills/`
14
+ - Logs: `.agents/logs/`
15
+ - Shared adapter utilities: `.agents/common/`
16
+ - Agent-specific adapter notes: `.agents/adapters/<agent>/`
11
17
 
12
18
  The compatibility path `.claude/` may mirror this runtime for agents that still expect Claude-style paths.
19
+
20
+ ## Required first-turn behavior
21
+
22
+ Every adapter should start from `AGENTS.md`, inspect the relevant `.project` contract and current git state, then use the adapter note only for runtime-specific differences.
23
+
24
+ ## Core validation commands
25
+
26
+ - `bash .agents/scripts/pm/validate.sh`
27
+ - `npm test`
28
+ - `npm run build:assets`
29
+ - `npm run check:package-manifest`
30
+
31
+ ## Completion rule
32
+
33
+ Do not report a task as done until the change is present, evidence is recorded, validation has passed or been explicitly marked not run, and blockers are named.
34
+
35
+ ## Safety boundaries
36
+
37
+ Keep logs privacy-safe, avoid absolute path leaks in docs/contracts/hook output, and do not perform destructive git or remote-write operations without an explicit task instruction.