@team-attention/hoyeon-cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +10011 -0
- package/package.json +27 -0
- package/schemas/dev-spec-v4.schema.json +697 -0
- package/schemas/dev-state-v1.schema.json +111 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "dev-state/v1",
|
|
4
|
+
"title": "dev-state v1",
|
|
5
|
+
"description": "JSON Schema for dev state v1 — mutable runtime state (spec/state separated)",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["spec_ref", "spec_hash", "tasks"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": { "type": "string" },
|
|
11
|
+
"spec_ref": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Relative path to the associated spec.json file"
|
|
14
|
+
},
|
|
15
|
+
"spec_hash": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"pattern": "^[a-f0-9]{64}$",
|
|
18
|
+
"description": "SHA-256 hex digest of spec.json contents for drift detection (raw hex, no prefix)"
|
|
19
|
+
},
|
|
20
|
+
"tasks": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"description": "Task status map keyed by task ID (e.g. T1, T2)",
|
|
23
|
+
"additionalProperties": {
|
|
24
|
+
"$ref": "#/$defs/taskState"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"verifications": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"description": "Verification result map keyed by scenario ID (e.g. R1.S1)",
|
|
30
|
+
"additionalProperties": {
|
|
31
|
+
"$ref": "#/$defs/verificationState"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"assumptions": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"description": "Assumption status map keyed by assumption ID (e.g. A1)",
|
|
37
|
+
"additionalProperties": {
|
|
38
|
+
"$ref": "#/$defs/assumptionState"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"history": {
|
|
42
|
+
"type": "array",
|
|
43
|
+
"description": "Chronological log of state transitions",
|
|
44
|
+
"items": { "$ref": "#/$defs/historyEntry" }
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"$defs": {
|
|
48
|
+
"taskStatus": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"enum": ["pending", "in_progress", "done", "blocked_by"]
|
|
51
|
+
},
|
|
52
|
+
"taskState": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"required": ["status"],
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"properties": {
|
|
57
|
+
"status": { "$ref": "#/$defs/taskStatus" },
|
|
58
|
+
"owner": { "type": "string" },
|
|
59
|
+
"started_at": { "type": "string" },
|
|
60
|
+
"completed_at": { "type": "string" },
|
|
61
|
+
"blocked_by": {
|
|
62
|
+
"type": "array",
|
|
63
|
+
"minItems": 1,
|
|
64
|
+
"items": { "type": "string" },
|
|
65
|
+
"description": "List of task IDs that must complete before this task can proceed"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"if": {
|
|
69
|
+
"properties": { "status": { "const": "blocked_by" } },
|
|
70
|
+
"required": ["status"]
|
|
71
|
+
},
|
|
72
|
+
"then": {
|
|
73
|
+
"required": ["blocked_by"]
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"verificationState": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"required": ["passed"],
|
|
79
|
+
"additionalProperties": false,
|
|
80
|
+
"properties": {
|
|
81
|
+
"passed": {
|
|
82
|
+
"type": ["boolean", "null"],
|
|
83
|
+
"description": "null = not yet verified, true = passed, false = failed"
|
|
84
|
+
},
|
|
85
|
+
"evidence": { "type": "string" },
|
|
86
|
+
"at": { "type": "string" }
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"assumptionState": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"required": ["verified"],
|
|
92
|
+
"additionalProperties": false,
|
|
93
|
+
"properties": {
|
|
94
|
+
"verified": { "type": "boolean" },
|
|
95
|
+
"verified_at": { "type": "string" }
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"historyEntry": {
|
|
99
|
+
"type": "object",
|
|
100
|
+
"required": ["action", "by", "at"],
|
|
101
|
+
"additionalProperties": false,
|
|
102
|
+
"properties": {
|
|
103
|
+
"action": { "type": "string" },
|
|
104
|
+
"by": { "type": "string" },
|
|
105
|
+
"at": { "type": "string" },
|
|
106
|
+
"detail": { "type": "string" },
|
|
107
|
+
"task": { "type": "string" }
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|