@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.
- package/HANDBOOK.md +297 -74
- package/README.md +1 -1
- package/assets/payload/HANDBOOK.md +297 -74
- package/package.json +1 -1
package/HANDBOOK.md
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
## First Edition, v3
|
|
4
4
|
|
|
5
|
-
Version: 3.
|
|
6
|
-
Last updated: 2026-
|
|
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.
|
|
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 ->
|
|
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
|
|
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
|
-
-
|
|
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 `
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
600
|
+
### 8.4 Skill contract standard
|
|
479
601
|
|
|
480
602
|
Each skill must define:
|
|
481
603
|
|
|
482
|
-
-
|
|
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.
|
|
629
|
+
### 8.5 Skill contract examples
|
|
491
630
|
|
|
492
631
|
#### Example: breakdown-skill
|
|
493
632
|
|
|
494
633
|
```yaml
|
|
495
634
|
name: breakdown-skill
|
|
496
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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`
|
|
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`
|
|
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
|
-
-
|
|
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
|
-
-
|
|
737
|
-
-
|
|
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
|
|
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
|
|
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.
|
|
882
|
-
5.
|
|
883
|
-
6.
|
|
884
|
-
7.
|
|
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:
|
|
896
|
-
- medium risk: dry-run
|
|
897
|
-
- high risk: stop
|
|
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)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
1693
|
+
### 18.8 Sunset policy for legacy folders
|
|
1471
1694
|
|
|
1472
1695
|
After two stable cycles:
|
|
1473
1696
|
|