@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
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/artifacts/plan.schema.json",
4
+ "title": "Delano project plan frontmatter",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "required": [
8
+ "name",
9
+ "status",
10
+ "lead",
11
+ "created",
12
+ "updated",
13
+ "linear_project_id",
14
+ "risk_level",
15
+ "spec_status_at_plan_time"
16
+ ],
17
+ "properties": {
18
+ "name": {
19
+ "type": "string",
20
+ "minLength": 1
21
+ },
22
+ "status": {
23
+ "enum": [
24
+ "planned",
25
+ "active",
26
+ "done",
27
+ "deferred"
28
+ ]
29
+ },
30
+ "lead": {
31
+ "type": "string",
32
+ "minLength": 1
33
+ },
34
+ "created": {
35
+ "type": "string",
36
+ "format": "date-time"
37
+ },
38
+ "updated": {
39
+ "type": "string",
40
+ "format": "date-time"
41
+ },
42
+ "linear_project_id": {
43
+ "type": "string"
44
+ },
45
+ "risk_level": {
46
+ "enum": [
47
+ "low",
48
+ "medium",
49
+ "high"
50
+ ]
51
+ },
52
+ "spec_status_at_plan_time": {
53
+ "enum": [
54
+ "planned",
55
+ "active",
56
+ "complete",
57
+ "deferred"
58
+ ]
59
+ },
60
+ "target_version": {
61
+ "type": "string"
62
+ },
63
+ "operating_mode": {
64
+ "enum": [
65
+ 0,
66
+ 1,
67
+ 2,
68
+ 3,
69
+ 4,
70
+ "0",
71
+ "1",
72
+ "2",
73
+ "3",
74
+ "4",
75
+ "patch",
76
+ "scoped-change",
77
+ "feature",
78
+ "uncertain-feature",
79
+ "multi-stream"
80
+ ]
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/artifacts/spec.schema.json",
4
+ "title": "Delano project spec frontmatter",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "required": [
8
+ "name",
9
+ "slug",
10
+ "owner",
11
+ "status",
12
+ "created",
13
+ "updated",
14
+ "outcome",
15
+ "uncertainty",
16
+ "probe_required",
17
+ "probe_status"
18
+ ],
19
+ "properties": {
20
+ "name": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ },
24
+ "slug": {
25
+ "type": "string",
26
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
27
+ },
28
+ "owner": {
29
+ "type": "string",
30
+ "minLength": 1
31
+ },
32
+ "status": {
33
+ "enum": [
34
+ "planned",
35
+ "active",
36
+ "complete",
37
+ "deferred"
38
+ ]
39
+ },
40
+ "created": {
41
+ "type": "string",
42
+ "format": "date-time"
43
+ },
44
+ "updated": {
45
+ "type": "string",
46
+ "format": "date-time"
47
+ },
48
+ "outcome": {
49
+ "type": "string",
50
+ "minLength": 1
51
+ },
52
+ "uncertainty": {
53
+ "type": "string",
54
+ "minLength": 1
55
+ },
56
+ "probe_required": {
57
+ "enum": [
58
+ "true",
59
+ "false",
60
+ true,
61
+ false
62
+ ]
63
+ },
64
+ "probe_status": {
65
+ "enum": [
66
+ "not-started",
67
+ "pending",
68
+ "completed",
69
+ "skipped"
70
+ ]
71
+ },
72
+ "source_review": {
73
+ "type": "string"
74
+ },
75
+ "external_reference": {
76
+ "type": "string"
77
+ },
78
+ "target_version": {
79
+ "type": "string"
80
+ },
81
+ "operating_mode": {
82
+ "enum": [
83
+ 0,
84
+ 1,
85
+ 2,
86
+ 3,
87
+ 4,
88
+ "0",
89
+ "1",
90
+ "2",
91
+ "3",
92
+ "4",
93
+ "patch",
94
+ "scoped-change",
95
+ "feature",
96
+ "uncertain-feature",
97
+ "multi-stream"
98
+ ]
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,121 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/artifacts/task.schema.json",
4
+ "title": "Delano task frontmatter",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "required": [
8
+ "id",
9
+ "name",
10
+ "status",
11
+ "workstream",
12
+ "created",
13
+ "updated",
14
+ "linear_issue_id",
15
+ "github_issue",
16
+ "github_pr",
17
+ "depends_on",
18
+ "conflicts_with",
19
+ "parallel",
20
+ "priority",
21
+ "estimate"
22
+ ],
23
+ "properties": {
24
+ "id": {
25
+ "type": "string",
26
+ "pattern": "^T-[0-9]{3}$"
27
+ },
28
+ "name": {
29
+ "type": "string",
30
+ "minLength": 1
31
+ },
32
+ "status": {
33
+ "enum": [
34
+ "ready",
35
+ "in-progress",
36
+ "blocked",
37
+ "done",
38
+ "deferred"
39
+ ]
40
+ },
41
+ "workstream": {
42
+ "type": "string",
43
+ "pattern": "^WS-[A-Za-z0-9]+$"
44
+ },
45
+ "created": {
46
+ "type": "string",
47
+ "format": "date-time"
48
+ },
49
+ "updated": {
50
+ "type": "string",
51
+ "format": "date-time"
52
+ },
53
+ "linear_issue_id": {
54
+ "type": "string"
55
+ },
56
+ "github_issue": {
57
+ "type": "string"
58
+ },
59
+ "github_pr": {
60
+ "type": "string"
61
+ },
62
+ "depends_on": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "string",
66
+ "pattern": "^T-[0-9]{3}$"
67
+ },
68
+ "uniqueItems": true
69
+ },
70
+ "conflicts_with": {
71
+ "type": "array",
72
+ "items": {
73
+ "type": "string",
74
+ "pattern": "^T-[0-9]{3}$"
75
+ },
76
+ "uniqueItems": true
77
+ },
78
+ "parallel": {
79
+ "enum": [
80
+ "true",
81
+ "false",
82
+ true,
83
+ false
84
+ ]
85
+ },
86
+ "priority": {
87
+ "enum": [
88
+ "low",
89
+ "medium",
90
+ "high"
91
+ ]
92
+ },
93
+ "estimate": {
94
+ "enum": [
95
+ "S",
96
+ "M",
97
+ "L",
98
+ "XL"
99
+ ]
100
+ },
101
+ "operating_mode": {
102
+ "enum": [
103
+ 0,
104
+ 1,
105
+ 2,
106
+ 3,
107
+ 4,
108
+ "0",
109
+ "1",
110
+ "2",
111
+ "3",
112
+ "4",
113
+ "patch",
114
+ "scoped-change",
115
+ "feature",
116
+ "uncertain-feature",
117
+ "multi-stream"
118
+ ]
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/artifacts/update.schema.json",
4
+ "title": "Delano update frontmatter",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "properties": {
8
+ "date": { "type": "string", "format": "date-time" },
9
+ "related_task": { "type": "string", "pattern": "^T-[0-9]{3}$" },
10
+ "status": { "type": "string", "minLength": 1 }
11
+ }
12
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/artifacts/workstream.schema.json",
4
+ "title": "Delano workstream frontmatter",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "required": [
8
+ "name",
9
+ "status",
10
+ "owner",
11
+ "created",
12
+ "updated"
13
+ ],
14
+ "properties": {
15
+ "id": {
16
+ "type": "string",
17
+ "pattern": "^WS-[A-Za-z0-9]+$"
18
+ },
19
+ "name": {
20
+ "type": "string",
21
+ "minLength": 1
22
+ },
23
+ "status": {
24
+ "enum": [
25
+ "planned",
26
+ "active",
27
+ "done",
28
+ "deferred"
29
+ ]
30
+ },
31
+ "owner": {
32
+ "type": "string",
33
+ "minLength": 1
34
+ },
35
+ "created": {
36
+ "type": "string",
37
+ "format": "date-time"
38
+ },
39
+ "updated": {
40
+ "type": "string",
41
+ "format": "date-time"
42
+ },
43
+ "child_project": {
44
+ "type": "string"
45
+ },
46
+ "operating_mode": {
47
+ "enum": [
48
+ 0,
49
+ 1,
50
+ 2,
51
+ 3,
52
+ 4,
53
+ "0",
54
+ "1",
55
+ "2",
56
+ "3",
57
+ "4",
58
+ "patch",
59
+ "scoped-change",
60
+ "feature",
61
+ "uncertain-feature",
62
+ "multi-stream"
63
+ ]
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "schema_version": 1,
3
+ "status": "draft",
4
+ "purpose": "Maps task acceptance criteria to proof signals required before a task can be treated as done.",
5
+ "done_task_rules": [
6
+ {
7
+ "id": "acceptance-criteria-checked",
8
+ "description": "Done tasks must have no unchecked acceptance criteria."
9
+ },
10
+ {
11
+ "id": "evidence-log-present",
12
+ "description": "Done tasks must have an Evidence Log section with at least one implementation evidence item."
13
+ },
14
+ {
15
+ "id": "repo-inspection-proof",
16
+ "acceptance_criterion_contains": "repo state has been inspected",
17
+ "proof_terms": [
18
+ "inspected"
19
+ ]
20
+ },
21
+ {
22
+ "id": "representation-proof",
23
+ "acceptance_criterion_contains": "represented in Delano runtime assets",
24
+ "proof_terms": [
25
+ "added",
26
+ "updated",
27
+ "wired",
28
+ "rebuilt",
29
+ "represented",
30
+ "mirrored"
31
+ ]
32
+ },
33
+ {
34
+ "id": "validation-proof",
35
+ "acceptance_criterion_contains": "validated with the smallest meaningful command",
36
+ "proof_terms": [
37
+ "validation passed",
38
+ "passed:",
39
+ "npm test",
40
+ "check:",
41
+ "Validation:"
42
+ ]
43
+ },
44
+ {
45
+ "id": "evidence-recorded-proof",
46
+ "acceptance_criterion_contains": "Evidence is recorded",
47
+ "proof_terms": [
48
+ "Evidence Log"
49
+ ]
50
+ }
51
+ ],
52
+ "strict_since": "2026-04-29T00:00:00Z"
53
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/learning/closeout-learning-proposal.schema.json",
4
+ "title": "Delano closeout learning proposal",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "project", "task_ids", "proposal_type", "title", "rationale", "target_paths", "review_gate", "adoption_status"],
8
+ "properties": {
9
+ "schema_version": { "const": 1 },
10
+ "project": { "type": "string", "minLength": 1 },
11
+ "task_ids": { "type": "array", "items": { "type": "string", "pattern": "^T-[0-9]{3}$" }, "minItems": 1 },
12
+ "proposal_type": { "enum": ["rule", "skill", "schema", "fixture"] },
13
+ "title": { "type": "string", "minLength": 1 },
14
+ "rationale": { "type": "string", "minLength": 1 },
15
+ "target_paths": { "type": "array", "items": { "type": "string", "not": { "pattern": "^/" } }, "minItems": 1 },
16
+ "review_gate": { "enum": ["required-before-adoption"] },
17
+ "adoption_status": { "enum": ["proposed", "accepted", "rejected", "deferred"] },
18
+ "evidence": { "type": "array", "items": { "type": "string" } }
19
+ }
20
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/learning/delivery-metric-event.schema.json",
4
+ "title": "Delano delivery metric event",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "event_id", "event_type", "project", "task_id", "occurred_at", "privacy"],
8
+ "properties": {
9
+ "schema_version": { "const": 1 },
10
+ "event_id": { "type": "string", "pattern": "^evt-[0-9TZ-]+-[a-z0-9-]+$" },
11
+ "event_type": { "enum": ["task_started", "validation_passed", "validation_failed", "task_completed", "blocked", "handoff_created"] },
12
+ "project": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
13
+ "task_id": { "type": "string", "pattern": "^T-[0-9]{3}$" },
14
+ "occurred_at": { "type": "string" },
15
+ "duration_seconds": { "type": "number", "minimum": 0 },
16
+ "validation_command": { "type": "string" },
17
+ "outcome": { "enum": ["pass", "fail", "blocked", "info"] },
18
+ "privacy": { "enum": ["summary-only", "local-detail"] },
19
+ "notes": { "type": "string" }
20
+ }
21
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/leases/lease.schema.json",
4
+ "title": "Delano multi-agent path lease",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "lease_id", "owner", "project", "task_id", "status", "mode", "paths", "conflict_zones", "created_at", "acquired_at", "expires_at"],
8
+ "properties": {
9
+ "schema_version": { "const": 1 },
10
+ "lease_id": { "type": "string", "pattern": "^lease-[0-9TZ._-]+-[a-z0-9-]+$" },
11
+ "owner": {
12
+ "oneOf": [
13
+ { "type": "string", "minLength": 1 },
14
+ {
15
+ "type": "object",
16
+ "additionalProperties": false,
17
+ "required": ["agent_id", "stream"],
18
+ "properties": {
19
+ "agent_id": { "type": "string", "minLength": 1 },
20
+ "stream": { "type": "string", "minLength": 1 },
21
+ "task": { "type": "string" }
22
+ }
23
+ }
24
+ ]
25
+ },
26
+ "project": { "type": "string", "minLength": 1 },
27
+ "task_id": { "type": "string", "pattern": "^T-[0-9]{3}$" },
28
+ "mode": { "enum": ["shared", "exclusive"] },
29
+ "paths": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1, "not": { "pattern": "^/" } } },
30
+ "conflict_zones": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1, "not": { "pattern": "^/" } } },
31
+ "created_at": { "type": "string" },
32
+ "acquired_at": { "type": "string" },
33
+ "expires_at": { "type": "string" },
34
+ "released_at": { "type": "string" },
35
+ "status": { "enum": ["active", "expired", "released"] },
36
+ "release_reason": { "type": "string" },
37
+ "handoff_summary": { "type": "string" }
38
+ }
39
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/metrics/delivery-event.schema.json",
4
+ "title": "Delano privacy-safe delivery metric event",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "event_id", "event_type", "project", "created_at", "source", "privacy", "summary"],
8
+ "properties": {
9
+ "schema_version": { "const": 1 },
10
+ "event_id": { "type": "string", "pattern": "^metric-[0-9TZ._-]+-[a-z0-9-]+$" },
11
+ "event_type": { "enum": ["task-status-change", "validation-run", "sync-drift", "evidence-gap", "blocked-time", "closeout-learning"] },
12
+ "project": { "type": "string", "minLength": 1 },
13
+ "task_id": { "type": "string", "pattern": "^T-[0-9]{3}$" },
14
+ "created_at": { "type": "string" },
15
+ "source": { "enum": ["local-runtime", "pm-validation", "sync-inspection", "closeout"] },
16
+ "privacy": {
17
+ "type": "object",
18
+ "additionalProperties": false,
19
+ "required": ["raw_text_allowed", "summary_only", "redaction_required"],
20
+ "properties": {
21
+ "raw_text_allowed": { "const": false },
22
+ "summary_only": { "const": true },
23
+ "redaction_required": { "const": true }
24
+ }
25
+ },
26
+ "summary": { "type": "string", "minLength": 1 },
27
+ "metrics": { "type": "object", "additionalProperties": { "type": ["number", "string", "boolean"] } }
28
+ }
29
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://delano.local/schemas/metrics/delivery-events.schema.json",
4
+ "title": "Delano delivery metric event contract",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "event_id", "event_type", "timestamp", "project", "actor", "summary"],
8
+ "properties": {
9
+ "schema_version": { "const": 1 },
10
+ "event_id": { "type": "string", "pattern": "^evt-[0-9TZ._-]+-[a-z0-9-]+$" },
11
+ "event_type": {
12
+ "enum": [
13
+ "task_status_changed",
14
+ "validation_run",
15
+ "lease_acquired",
16
+ "lease_released",
17
+ "drift_report_generated",
18
+ "repair_plan_created",
19
+ "closeout_recorded"
20
+ ]
21
+ },
22
+ "timestamp": { "type": "string" },
23
+ "project": { "type": "string", "minLength": 1 },
24
+ "task_id": { "type": "string", "pattern": "^T-[0-9]{3}$" },
25
+ "actor": { "enum": ["agent", "system", "user"] },
26
+ "summary": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["label", "privacy"],
30
+ "properties": {
31
+ "label": { "type": "string", "minLength": 1 },
32
+ "privacy": { "const": "metadata-only" },
33
+ "counts": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 0 } },
34
+ "status_from": { "type": "string" },
35
+ "status_to": { "type": "string" },
36
+ "result": { "enum": ["passed", "failed", "blocked", "warning", "generated"] }
37
+ }
38
+ },
39
+ "evidence": {
40
+ "type": "object",
41
+ "additionalProperties": false,
42
+ "properties": {
43
+ "repo_paths": { "type": "array", "items": { "type": "string", "not": { "pattern": "^/" } } },
44
+ "commands": { "type": "array", "items": { "type": "string" } },
45
+ "commit": { "type": "string", "pattern": "^[0-9a-f]{7,40}$" }
46
+ }
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "schema_version": 1,
3
+ "status": "draft",
4
+ "purpose": "Defines Delano operating modes used to size governance, evidence, and coordination overhead for delivery work.",
5
+ "modes": [
6
+ {
7
+ "mode": 0,
8
+ "slug": "patch",
9
+ "name": "Patch",
10
+ "use_when": "A small, well-understood correction with low uncertainty and no meaningful coordination surface.",
11
+ "requires": ["single task or direct patch", "focused validation evidence", "no new workstream unless needed"]
12
+ },
13
+ {
14
+ "mode": 1,
15
+ "slug": "scoped-change",
16
+ "name": "Scoped change",
17
+ "use_when": "A bounded change with clear acceptance criteria, known affected files, and no material discovery risk.",
18
+ "requires": ["task contract", "acceptance criteria evidence", "local validation"]
19
+ },
20
+ {
21
+ "mode": 2,
22
+ "slug": "feature",
23
+ "name": "Feature",
24
+ "use_when": "A feature-sized delivery with multiple implementation steps but a clear solution direction.",
25
+ "requires": ["spec and plan", "workstream or task sequence", "validation gate before done"]
26
+ },
27
+ {
28
+ "mode": 3,
29
+ "slug": "uncertain-feature",
30
+ "name": "Uncertain feature",
31
+ "use_when": "A feature where the solution, user value, or integration path is uncertain enough to require a probe first.",
32
+ "requires": ["uncertainty statement", "probe_required=true or explicit skip rationale", "probe evidence before build commitment"]
33
+ },
34
+ {
35
+ "mode": 4,
36
+ "slug": "multi-stream",
37
+ "name": "Multi-stream delivery",
38
+ "use_when": "Delivery spans concurrent streams, leases, external sync, or coordination boundaries where collision risk matters.",
39
+ "requires": ["workstream map", "conflict zones or leases", "handoff summaries", "sync/drift checks when external systems are involved"]
40
+ }
41
+ ]
42
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "schema_version": 1,
3
+ "status": "draft",
4
+ "purpose": "Defines local validation rules for Delano task status readiness and blocked-state hygiene.",
5
+ "task_rules": [
6
+ {
7
+ "id": "ready-dependencies-done",
8
+ "status": "ready",
9
+ "description": "A ready task must not depend on a local task that is not done.",
10
+ "requires": ["all local depends_on task statuses are done"]
11
+ },
12
+ {
13
+ "id": "in-progress-dependencies-done",
14
+ "status": "in-progress",
15
+ "description": "An in-progress task must not start while local dependencies remain unresolved.",
16
+ "requires": ["all local depends_on task statuses are done"]
17
+ },
18
+ {
19
+ "id": "done-dependencies-done",
20
+ "status": "done",
21
+ "description": "A done task must not close over unresolved local dependencies.",
22
+ "requires": ["all local depends_on task statuses are done"]
23
+ },
24
+ {
25
+ "id": "blocked-owner-check-back",
26
+ "status": "blocked",
27
+ "description": "A blocked task must name who owns unblocking and when to check back.",
28
+ "requires": ["blocked_owner", "blocked_check_back"]
29
+ }
30
+ ]
31
+ }