@bvdm/delano 0.2.9 → 0.2.10

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.
@@ -2,8 +2,9 @@
2
2
 
3
3
  ## First Edition, v3
4
4
 
5
- Version: 3.2
6
- Last updated: 2026-05-04
5
+ Version: 3.3
6
+ Last updated: 2026-06-02
7
+ Runtime/package compatibility: covers `@bvdm/delano` through 0.2.10
7
8
 
8
9
  ---
9
10
 
@@ -41,7 +42,7 @@ If you are reading this for implementation, start with Sections 4, 8, 9, 11, 17,
41
42
  15. Decision framework and question bank
42
43
  16. Role operating playbooks
43
44
  17. Templates and operational checklists
44
- 18. Migration playbook (existing Delano repos)
45
+ 18. Runtime refresh and migration playbook
45
46
  19. Adoption roadmap and maturity gates
46
47
 
47
48
  ---
@@ -56,7 +57,7 @@ Its core objective is:
56
57
 
57
58
  ### 1.1 Primary flow
58
59
 
59
- **Outcome -> Planned Spec -> Probe Decision -> Active Spec -> Delivery Project -> Workstreams -> Tasks -> Linear Issues -> PRs -> Release -> Learnings**
60
+ **Outcome -> Draft/Planned Spec -> Probe Decision -> Approved/Active Spec -> Delivery Project -> Workstreams -> Tasks -> PRs -> Release -> Learnings**
60
61
 
61
62
  ### 1.2 Design principles
62
63
 
@@ -130,7 +131,17 @@ Delano is not:
130
131
  - Keep stable IDs in local and remote systems.
131
132
  - Prefer language that maps directly to execution responsibilities.
132
133
 
133
- ### 3.3 Why this model
134
+ ### 3.3 Spec terminology
135
+
136
+ Delano's file contracts use compact lifecycle states:
137
+
138
+ - `planned` is the local contract state for a draft spec that is not approved for execution yet.
139
+ - `active` is the local contract state for an approved spec that can drive planning and execution.
140
+ - `complete` is the local contract state after outcome review and delivery closeout.
141
+
142
+ User-facing docs may use "Draft Spec" and "Approved Spec" for readability. Treat those as wording aliases for `planned` and `active` unless a local policy says otherwise.
143
+
144
+ ### 3.4 Why this model
134
145
 
135
146
  This model keeps the strongest existing Delano patterns:
136
147
 
@@ -248,8 +259,10 @@ Not default because it weakens planning, milestone visibility, and structured go
248
259
  workstreams/
249
260
  tasks/
250
261
  updates/
262
+ research/
251
263
  decisions.md
252
264
  context/
265
+ templates/
253
266
  registry/
254
267
  linear-map.json
255
268
 
@@ -266,6 +279,9 @@ Not default because it weakens planning, milestone visibility, and structured go
266
279
  .claude/ # compatibility mirror of .agents
267
280
 
268
281
  .delano/ # optional UI layer
282
+
283
+ .codex/
284
+ hooks.json # optional Codex SessionStart hook config; inert until trusted
269
285
  ```
270
286
 
271
287
  ### 5.2 Boundary policy
@@ -310,9 +326,13 @@ Required sections:
310
326
  - Executive summary
311
327
  - Problem and users
312
328
  - Outcome and success metrics
313
- - Scope and non-goals
329
+ - User stories
330
+ - Acceptance scenarios
331
+ - Scope
314
332
  - Functional requirements
315
333
  - Non-functional requirements
334
+ - Assumptions
335
+ - Needs clarification
316
336
  - Hypotheses and unknowns
317
337
  - Touchpoints to exercise
318
338
  - Probe findings
@@ -337,7 +357,11 @@ spec_status_at_plan_time: planned|active|complete|deferred
337
357
  Required sections:
338
358
 
339
359
  - What changed after probe
360
+ - Technical context
340
361
  - Architecture decisions
362
+ - Policy and contract checks
363
+ - Generated artifact map
364
+ - Complexity exceptions
341
365
  - Probe-driven architecture changes
342
366
  - Workstream design
343
367
  - Milestone strategy
@@ -346,7 +370,26 @@ Required sections:
346
370
  - Rollback strategy
347
371
  - Remaining delivery risks
348
372
 
349
- ### 6.3 `tasks/*.md` contract
373
+ ### 6.3 `workstreams/*.md` contract
374
+
375
+ ```yaml
376
+ id: WS-A
377
+ name: WS-A API Foundation
378
+ owner: backend-team
379
+ status: planned|active|done|deferred
380
+ created: <ISO8601 UTC>
381
+ updated: <ISO8601 UTC>
382
+ ```
383
+
384
+ Required sections:
385
+
386
+ - Objective
387
+ - Owned files/areas
388
+ - Dependencies
389
+ - Risks
390
+ - Handoff criteria
391
+
392
+ ### 6.4 `tasks/*.md` contract
350
393
 
351
394
  ```yaml
352
395
  id: T-001
@@ -363,23 +406,47 @@ conflicts_with: []
363
406
  parallel: true|false
364
407
  priority: low|medium|high
365
408
  estimate: S|M|L|XL
409
+ story_id:
410
+ acceptance_criteria_ids: []
366
411
  ```
367
412
 
368
413
  Required sections:
369
414
 
370
415
  - Description
371
416
  - Acceptance criteria
417
+ - Traceability
372
418
  - Technical notes
373
419
  - Definition of done
374
420
  - Evidence log
375
421
 
376
- ### 6.4 Contract invariants
422
+ The current validator requires the core task keys above through `estimate`. `story_id` and `acceptance_criteria_ids` are canonical template fields for traceability and should be populated when a task maps to explicit spec stories or acceptance scenarios. They are not currently hard validation failures when empty.
423
+
424
+ ### 6.5 Research intake contract
425
+
426
+ Research intake is upstream evidence gathering, not executable task truth.
427
+
428
+ ```text
429
+ .project/projects/<slug>/research/<research-slug>/
430
+ task_plan.md
431
+ findings.md
432
+ progress.md
433
+ ```
434
+
435
+ Use research when intent, options, external evidence, or imported artifacts need investigation before mutating `spec.md`, `plan.md`, workstreams, tasks, decisions, or updates.
436
+
437
+ Durable findings must either:
438
+
439
+ - fold forward into canonical Delano artifacts; or
440
+ - close explicitly as no-action.
441
+
442
+ ### 6.6 Contract invariants
377
443
 
378
444
  - `created` immutable
379
445
  - `updated` real UTC system timestamp
380
446
  - probe decision explicit before spec activation
381
447
  - dependency graph acyclic before execution
382
448
  - no absolute path leakage in shared output
449
+ - research findings are not execution truth until folded forward
383
450
 
384
451
  ---
385
452
 
@@ -412,6 +479,11 @@ Probe decision rule while spec is `planned`:
412
479
 
413
480
  #### Delivery Project
414
481
 
482
+ `planned -> active -> done`
483
+ optional terminal: `deferred`
484
+
485
+ #### Workstream
486
+
415
487
  `planned -> active -> done`
416
488
  optional terminal: `deferred`
417
489
 
@@ -425,13 +497,33 @@ optional branches: `blocked`, `deferred`
425
497
  - No `ready`, `in-progress`, or `done` transition with unmet local dependencies.
426
498
  - No `done` without evidence completion.
427
499
  - No project `done` with unresolved required tasks.
500
+ - No progressed task without an existing parent workstream.
501
+ - No `in-progress` task unless its workstream is `active`.
502
+ - No `done` task unless its workstream is `active` or `done`.
503
+ - No workstream with zero open tasks unless it is `done` or `deferred`.
428
504
  - No spec `active` without explicit probe decision fields.
429
505
  - No spec `active` with unresolved required probe findings.
430
506
  - No spec `complete` without outcome review.
431
507
 
432
508
  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
509
 
434
- ### 7.4 Review semantics
510
+ Probe and outcome rules are policy gates unless a local validator or review workflow enforces them directly. They still belong in the handbook because agents and operators must not treat schema pass/fail as the whole approval model.
511
+
512
+ ### 7.4 Native CLI lifecycle rollups
513
+
514
+ The native `delano project`, `delano workstream`, and `delano task` commands patch existing contracts rather than regenerating them.
515
+
516
+ Task lifecycle commands apply scoped parent rollups:
517
+
518
+ - `delano task start` and `delano task close` promote planned project and workstream lifecycle to active.
519
+ - `delano task close` and `delano task defer` mark an affected workstream `done` when all tasks in that workstream are closed.
520
+ - `delano task close` and `delano task defer` mark the project spec `complete` and plan `done` when all project tasks are closed.
521
+ - `delano task open` reopens closed parent lifecycle to active when reopening a closed task.
522
+ - `delano task close` can open dependency-only blocked dependents when all their local dependencies are now done.
523
+
524
+ These rollups are intentionally scoped and evidence-driven. They do not remove the need to review changed files, rerun validation, and record release evidence before handoff.
525
+
526
+ ### 7.5 Review semantics
435
527
 
436
528
  Review is a quality gate before closure. It may include one or more:
437
529
 
@@ -441,7 +533,7 @@ Review is a quality gate before closure. It may include one or more:
441
533
 
442
534
  Teams must define exact review semantics in local policy and record the result in evidence, updates, or PR state.
443
535
 
444
- ### 7.5 Explicit Delano -> Linear status mapping
536
+ ### 7.6 Explicit Delano -> Linear status mapping
445
537
 
446
538
  | Delano task status | Preferred Linear state |
447
539
  |---|---|
@@ -459,14 +551,44 @@ If team workflow names differ, maintain this semantic mapping in sync rules.
459
551
 
460
552
  ### 8.1 Component model
461
553
 
554
+ - **CLI**: package distribution, install, viewer launch, native state commands, and wrappers
462
555
  - **Skills**: reasoning and orchestration
463
556
  - **Scripts**: deterministic execution
464
557
  - **Rules**: constraints and policy
465
558
  - **Hooks**: runtime tracking and guardrails
466
559
 
467
- ### 8.8 v0.2 runtime foundation
560
+ ### 8.2 CLI command map
561
+
562
+ The current `delano` CLI exposes both native state commands and PM-script wrappers.
563
+
564
+ Native package/runtime commands:
565
+
566
+ | Command | Role | Writes |
567
+ |---|---|---|
568
+ | `delano onboarding` | approval-first review of repo agent instructions | none by default |
569
+ | `delano install` | install or refresh the approved runtime payload | allowlisted runtime/package files |
570
+ | `delano viewer` | launch the read-only local `.project` UI | nothing |
571
+ | `delano project` | create, show, and patch project contracts | `.project/projects/<slug>/` |
572
+ | `delano workstream` | add, show, and patch workstream contracts | `workstreams/*.md` |
573
+ | `delano task` | add and patch task contracts with scoped lifecycle rollups | `tasks/*.md` and parent rollups |
574
+ | `delano update` | add progress updates from templates | `updates/*.md` |
575
+
576
+ PM-script wrappers:
577
+
578
+ | Command | Wrapped surface |
579
+ |---|---|
580
+ | `delano init` | `.agents/scripts/pm/init.sh` |
581
+ | `delano import-spec-kit` | `.agents/scripts/pm/import-spec-kit.sh` |
582
+ | `delano research` | `.agents/scripts/pm/research.sh` |
583
+ | `delano validate` | `.agents/scripts/pm/validate.sh` |
584
+ | `delano status` | `.agents/scripts/pm/status.sh` |
585
+ | `delano next` | `.agents/scripts/pm/next.sh` |
586
+
587
+ Use the native state commands for template-backed contract creation and lifecycle patching. Use wrappers when invoking the established PM-script runtime directly.
588
+
589
+ ### 8.3 Current runtime foundation
468
590
 
469
- v0.2 adds enforceable local runtime surfaces around the handbook process:
591
+ The package adds enforceable local runtime surfaces around the handbook process:
470
592
 
471
593
  - **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
594
  - **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.
@@ -475,74 +597,62 @@ v0.2 adds enforceable local runtime surfaces around the handbook process:
475
597
  - **Lease semantics**: multi-agent work uses leases with conflict zones, lifecycle state, and handoff summaries. Conflict checks must run before overlapping work proceeds.
476
598
  - **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
599
 
478
- ### 8.2 Skill contract standard
600
+ ### 8.4 Skill contract standard
479
601
 
480
602
  Each skill must define:
481
603
 
482
- - intent and trigger context
604
+ - `description` frontmatter
605
+ - trigger context
483
606
  - required inputs
484
607
  - output schema
485
608
  - quality checks
486
609
  - failure behavior
487
610
  - allowed side effects
488
611
  - script hooks
612
+ - execution assets
613
+
614
+ Required Delano skills currently include:
615
+
616
+ - `discovery-skill`
617
+ - `research-skill`
618
+ - `prototype-skill`
619
+ - `planning-skill`
620
+ - `breakdown-skill`
621
+ - `sync-skill`
622
+ - `execution-skill`
623
+ - `quality-skill`
624
+ - `closeout-skill`
625
+ - `learning-skill`
626
+
627
+ Each required skill needs a runbook, at least two markdown templates, and a `## Execution assets` section in `SKILL.md`.
489
628
 
490
- ### 8.3 Skill contract examples
629
+ ### 8.5 Skill contract examples
491
630
 
492
631
  #### Example: breakdown-skill
493
632
 
494
633
  ```yaml
495
634
  name: breakdown-skill
496
- intent: decompose active plan into atomic tasks
497
- inputs:
498
- - spec_path
499
- - plan_path
500
- - workstream_files
501
- outputs:
502
- - task_files
503
- - dependency_graph
504
- quality_checks:
505
- - acceptance criteria are binary
506
- - estimate present per task
507
- - dependency graph acyclic
508
- failure_behavior:
509
- - stop on circular dependency
510
- - return ambiguity report
511
- script_hooks:
512
- - bash .agents/scripts/pm/validate.sh
635
+ description: Decompose an approved plan into atomic tasks with dependencies and acceptance criteria. Use when planning is complete and execution must be prepared.
513
636
  ```
514
637
 
638
+ Expected body sections include trigger context, required inputs, output schema, quality checks, failure behavior, allowed side effects, script hooks, and execution assets.
639
+
515
640
  #### Example: sync-skill
516
641
 
517
642
  ```yaml
518
643
  name: sync-skill
519
- intent: reconcile local contracts with Linear and GitHub
520
- inputs:
521
- - project_slug
522
- - local_registry
523
- - task_files
524
- outputs:
525
- - updated_registry
526
- - drift_report
527
- quality_checks:
528
- - active tasks mapped
529
- - no duplicate mapping
530
- - dependency parity pass
531
- failure_behavior:
532
- - dry-run when uncertainty detected
533
- - emit conflict resolution actions
534
- script_hooks:
535
- - bash .agents/scripts/pm/status.sh
536
- - bash .agents/scripts/pm/validate.sh
644
+ description: Inspect local and remote delivery state, classify drift, and produce repair guidance without mutating remote systems unless an explicit apply-capable workflow is approved.
537
645
  ```
538
646
 
539
- ### 8.4 Annotated script catalog
647
+ ### 8.6 Annotated script catalog
540
648
 
541
649
  #### Critical path scripts
542
650
 
543
651
  | Script | Purpose | Criticality |
544
652
  |---|---|---|
545
653
  | `pm/init.sh` | bootstrap delivery runtime and baseline checks | high |
654
+ | `pm/import-spec-kit.sh` | import a supported Spec Kit-style markdown artifact into Delano contracts | high |
655
+ | `pm/research.sh` | open repo-native research intake for unclear intent | high |
546
656
  | `pm/validate.sh` | contract and reference integrity validation | high |
547
657
  | `pm/status.sh` | project portfolio snapshot | high |
548
658
  | `pm/next.sh` | dependency-safe next task discovery | high |
@@ -570,7 +680,7 @@ script_hooks:
570
680
  | `fix-path-standards.sh` | path normalization |
571
681
  | `git-sparse-download.sh` | sparse external resource retrieval |
572
682
 
573
- ### 8.5 Rule system scope
683
+ ### 8.7 Rule system scope
574
684
 
575
685
  Rules should cover:
576
686
 
@@ -581,11 +691,12 @@ Rules should cover:
581
691
  - test execution hygiene
582
692
  - agent coordination protocol
583
693
 
584
- ### 8.6 Hook system scope
694
+ ### 8.8 Hook system scope
585
695
 
586
696
  Hooks should handle:
587
697
 
588
698
  - session tracking
699
+ - Codex `SessionStart` context injection when hooks are enabled and trusted
589
700
  - post-tool mutation logging
590
701
  - prompt submission logging (optional)
591
702
  - worktree shell context correction
@@ -612,20 +723,30 @@ Constraints:
612
723
 
613
724
  This keeps rapid learning without weakening team governance.
614
725
 
726
+ ### Upstream intake: Spec Kit import and research
727
+
728
+ Delano can accept structured upstream intent before normal discovery/planning:
729
+
730
+ - `delano import-spec-kit <slug> <source-md>` imports the first supported single-file Spec Kit-style markdown shape into planned Delano contracts.
731
+ - `delano research <project-slug> <research-slug>` creates research intake files for questions that need investigation before canonical artifacts change.
732
+
733
+ Import and research are intake paths, not approval paths. Imported artifacts and research notes must still pass Delano validation, probe decisions, evidence gates, and fold-forward review before execution.
734
+
615
735
  ### Stage A: Discovery
616
736
 
617
737
  **Goal**
618
738
 
619
- - define a measurable outcome, create the planned Spec, and make the probe decision explicit
739
+ - define a measurable outcome, create or review the planned Spec, and make the probe decision explicit
620
740
 
621
741
  **Entry criteria**
622
742
 
623
743
  - problem and owner identified
744
+ - imported or researched intent, if present, has been reviewed
624
745
 
625
746
  **Primary components**
626
747
 
627
748
  - skill: `discovery-skill`
628
- - scripts: `pm/init.sh` (if needed), `pm/validate.sh`
749
+ - scripts: `pm/init.sh`, `pm/import-spec-kit.sh`, `pm/research.sh`, `pm/validate.sh`
629
750
 
630
751
  **Exit artifacts**
631
752
 
@@ -700,7 +821,7 @@ This keeps rapid learning without weakening team governance.
700
821
 
701
822
  **Entry criteria**
702
823
 
703
- - `plan.md` complete
824
+ - planning complete and `plan.md` ready for breakdown
704
825
 
705
826
  **Primary components**
706
827
 
@@ -720,7 +841,7 @@ This keeps rapid learning without weakening team governance.
720
841
 
721
842
  **Goal**
722
843
 
723
- - establish parity between local contracts and remote trackers
844
+ - inspect local and remote state, classify drift, and produce a repair plan
724
845
 
725
846
  **Entry criteria**
726
847
 
@@ -733,13 +854,15 @@ This keeps rapid learning without weakening team governance.
733
854
 
734
855
  **Exit artifacts**
735
856
 
736
- - updated Linear Project/Issues
737
- - updated `linear-map.json`
857
+ - drift report
858
+ - repair plan
859
+ - updated `linear-map.json` only when an explicit approved workflow performs mapping changes
738
860
 
739
861
  **Gate**
740
862
 
741
863
  - no orphaned active tasks
742
864
  - status and dependency parity pass
865
+ - any remote mutation is behind explicit operator or apply-gate approval
743
866
 
744
867
  ### Stage F: Execution
745
868
 
@@ -857,7 +980,13 @@ At minimum:
857
980
  3. escalate contested files immediately
858
981
  4. avoid force-merge conflict resolution
859
982
 
860
- ### 10.4 Progress update location
983
+ ### 10.4 Progress update locations
984
+
985
+ Native CLI updates created with `delano update add` are flat dated files under:
986
+
987
+ `.project/projects/<slug>/updates/<date>-<slug>.md`
988
+
989
+ For manual multi-stream coordination, teams may also use a nested stream convention:
861
990
 
862
991
  `.project/projects/<slug>/updates/<task-id>/stream-<id>.md`
863
992
 
@@ -873,15 +1002,17 @@ Required fields:
873
1002
 
874
1003
  ## 11) Synchronization model (Linear and GitHub)
875
1004
 
876
- ### 11.1 Idempotent sync cycle
1005
+ ### 11.1 Default sync cycle
877
1006
 
878
1007
  1. read local contracts and registry
879
1008
  2. read remote objects
880
1009
  3. resolve identity map
881
- 4. create missing objects
882
- 5. update changed objects
883
- 6. persist mappings
884
- 7. run drift analysis
1010
+ 4. classify drift
1011
+ 5. produce repair plan
1012
+ 6. require explicit operator or apply-gate approval before remote mutation
1013
+ 7. persist mappings only as part of an approved repair or apply workflow
1014
+
1015
+ The default sync posture is inspection first. Remote GitHub and Linear writes remain outside the default flow unless the operator has chosen an apply-capable workflow and accepted its plan.
885
1016
 
886
1017
  ### 11.2 Drift classes
887
1018
 
@@ -892,9 +1023,11 @@ Required fields:
892
1023
 
893
1024
  ### 11.3 Drift handling by risk
894
1025
 
895
- - low risk: auto-repair + log
896
- - medium risk: dry-run + operator confirmation
897
- - high risk: stop + explicit decision required
1026
+ - low risk: repair plan may recommend local-only cleanup or mapping updates
1027
+ - medium risk: dry-run plus operator confirmation
1028
+ - high risk: stop plus explicit decision required
1029
+
1030
+ Do not silently create or update remote objects from handbook sync alone. The repair plan should name the intended mutation, affected objects, evidence, and rollback path.
898
1031
 
899
1032
  ### 11.4 GitHub role
900
1033
 
@@ -1208,6 +1341,12 @@ probe_status: <pending|skipped|completed>
1208
1341
 
1209
1342
  ## Outcome and Success Metrics
1210
1343
 
1344
+ ## User Stories
1345
+ - US-001: As a <user>, I want <capability>, so that <outcome>.
1346
+
1347
+ ## Acceptance Scenarios
1348
+ - AC-001: Given <context>, when <action>, then <observable result>.
1349
+
1211
1350
  ## Scope
1212
1351
  ### In Scope
1213
1352
  ### Out of Scope
@@ -1216,6 +1355,12 @@ probe_status: <pending|skipped|completed>
1216
1355
 
1217
1356
  ## Non-Functional Requirements
1218
1357
 
1358
+ ## Assumptions
1359
+ - <assumption to validate>
1360
+
1361
+ ## Needs Clarification
1362
+ - <question that must be answered before activation or execution>
1363
+
1219
1364
  ## Hypotheses and Unknowns
1220
1365
 
1221
1366
  ## Touchpoints to Exercise
@@ -1249,8 +1394,25 @@ spec_status_at_plan_time: <planned|active|complete|deferred>
1249
1394
 
1250
1395
  ## What Changed After Probe
1251
1396
 
1397
+ ## Technical Context
1398
+
1252
1399
  ## Architecture Decisions
1253
1400
 
1401
+ ## Policy and Contract Checks
1402
+ - [ ] `.project` remains the execution source of truth
1403
+ - [ ] Probe decision is explicit
1404
+ - [ ] Evidence gates are defined before handoff
1405
+ - [ ] External sync writes require dry-run or operator approval
1406
+
1407
+ ## Generated Artifact Map
1408
+ - `spec.md`: <source or generation notes>
1409
+ - `plan.md`: <source or generation notes>
1410
+ - `workstreams/`: <source or generation notes>
1411
+ - `tasks/`: <source or generation notes>
1412
+
1413
+ ## Complexity Exceptions
1414
+ - <exception, rationale, and owner>
1415
+
1254
1416
  ## Probe-Driven Architecture Changes
1255
1417
 
1256
1418
  ## Workstream Design
@@ -1270,6 +1432,7 @@ spec_status_at_plan_time: <planned|active|complete|deferred>
1270
1432
 
1271
1433
  ```markdown
1272
1434
  ---
1435
+ id: WS-A
1273
1436
  name: WS-A API Foundation
1274
1437
  owner: backend-team
1275
1438
  status: planned
@@ -1308,6 +1471,8 @@ conflicts_with: []
1308
1471
  parallel: true
1309
1472
  priority: medium
1310
1473
  estimate: M
1474
+ story_id:
1475
+ acceptance_criteria_ids: []
1311
1476
  ---
1312
1477
 
1313
1478
  # Task: <task-title>
@@ -1317,6 +1482,10 @@ estimate: M
1317
1482
  ## Acceptance Criteria
1318
1483
  - [ ]
1319
1484
 
1485
+ ## Traceability
1486
+ - Story: <story_id or none>
1487
+ - Acceptance criteria: <acceptance criteria ids or none>
1488
+
1320
1489
  ## Technical Notes
1321
1490
 
1322
1491
  ## Definition of Done
@@ -1401,7 +1570,61 @@ stream: <stream-id>
1401
1570
 
1402
1571
  ---
1403
1572
 
1404
- ## 18) Migration playbook (existing Delano repos)
1573
+ ## 18) Runtime refresh and migration playbook
1574
+
1575
+ ### 18.1 Install and refresh behavior
1576
+
1577
+ `delano install` is conflict-first and allowlist-based.
1578
+
1579
+ It supports:
1580
+
1581
+ - `--only <categories>`
1582
+ - `--exclude <categories>`
1583
+ - `--no-project-context`
1584
+ - `--no-project-state`
1585
+ - `--interactive` / `--tui`
1586
+ - `--force`
1587
+ - `--yes`
1588
+
1589
+ Install categories are:
1590
+
1591
+ - `agent-runtime`
1592
+ - `codex-hooks`
1593
+ - `skills`
1594
+ - `viewer`
1595
+ - `project-context`
1596
+ - `project-templates`
1597
+ - `project-registry`
1598
+ - `project-projects`
1599
+ - `handbook`
1600
+ - `legacy-installer`
1601
+
1602
+ After install, `.project/context`, `.project/projects`, and `.project/registry` are repo-owned state. Do not force-refresh them unless replacing that local state is intentional.
1603
+
1604
+ Recommended update-safe refreshes:
1605
+
1606
+ ```bash
1607
+ delano install --interactive
1608
+ delano install --only skills,project-templates --force --yes
1609
+ delano install --exclude project-context,project-projects,project-registry --force --yes
1610
+ delano install --no-project-state --force --yes
1611
+ ```
1612
+
1613
+ Top-level adapter entry docs such as `AGENTS.md`, `CLAUDE.md`, `CODEX.md`, `OPENCODE.md`, and `PI.md` remain opt-in. The base install payload does not install or overwrite those files.
1614
+
1615
+ ### 18.2 Codex hook trust model
1616
+
1617
+ The package can install or merge `.codex/hooks.json` for a Codex `SessionStart` hook that injects compact open-project context.
1618
+
1619
+ The hook is inert until:
1620
+
1621
+ 1. Codex hooks are enabled for the session or user config.
1622
+ 2. The repository's `.codex/` layer is trusted.
1623
+ 3. The Delano hook is approved when Codex prompts for trust.
1624
+
1625
+ If a target repository already has valid `.codex/hooks.json`, install merges the Delano hook. Invalid or non-file hook configs are skipped without blocking the rest of the install.
1626
+
1627
+ ### 18.3 Existing Delano repo migration
1405
1628
 
1406
1629
  This section covers migration from older layouts such as:
1407
1630
 
@@ -1409,13 +1632,13 @@ This section covers migration from older layouts such as:
1409
1632
  - `.project/epics/<name>/epic.md`
1410
1633
  - numbered task files under epic folders
1411
1634
 
1412
- ### 18.1 Migration goals
1635
+ ### 18.4 Migration goals
1413
1636
 
1414
1637
  - preserve historical artifacts
1415
1638
  - avoid destructive restructuring
1416
1639
  - establish new canonical path for future work
1417
1640
 
1418
- ### 18.2 Non-destructive migration strategy
1641
+ ### 18.5 Non-destructive migration strategy
1419
1642
 
1420
1643
  1. keep existing folders intact
1421
1644
  2. create new canonical structure under `.project/projects/<slug>/`
@@ -1423,7 +1646,7 @@ This section covers migration from older layouts such as:
1423
1646
  4. map old PRD/Epic/Task artifacts into Spec/Plan/Task contracts
1424
1647
  5. maintain old-to-new references in a migration index file
1425
1648
 
1426
- ### 18.3 Step-by-step migration
1649
+ ### 18.6 Step-by-step migration
1427
1650
 
1428
1651
  #### Step 1: inventory
1429
1652
 
@@ -1460,14 +1683,14 @@ Add migration mapping to:
1460
1683
 
1461
1684
  Run `bash .agents/scripts/pm/validate.sh` and a dry-run sync before mutating remote state.
1462
1685
 
1463
- ### 18.4 Migration acceptance criteria
1686
+ ### 18.7 Migration acceptance criteria
1464
1687
 
1465
1688
  - no active task is lost
1466
1689
  - all active mappings preserved
1467
1690
  - status parity maintained
1468
1691
  - old artifacts remain readable for audit
1469
1692
 
1470
- ### 18.5 Sunset policy for legacy folders
1693
+ ### 18.8 Sunset policy for legacy folders
1471
1694
 
1472
1695
  After two stable cycles:
1473
1696
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bvdm/delano",
3
- "version": "0.2.9",
3
+ "version": "0.2.10",
4
4
  "description": "CLI for the Delano delivery runtime.",
5
5
  "license": "MIT",
6
6
  "repository": {