sysprom 1.2.2 → 1.2.4
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/README.md +27 -25
- package/dist/src/speckit/plan.d.ts +14 -14
- package/dist/src/speckit/plan.js +17 -17
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -124,31 +124,33 @@ SysProM models systems as directed graphs across abstraction layers — intent,
|
|
|
124
124
|
|
|
125
125
|
## How SysProM Compares
|
|
126
126
|
|
|
127
|
-
| System | Readable | Parseable | State |
|
|
128
|
-
|
|
129
|
-
| [MBSE (SysML)](https://www.omg.org/spec/SysML/) | 🔶 | ✅ | ✅ |
|
|
130
|
-
| [Knowledge Graphs](https://www.w3.org/TR/rdf12-concepts/) | | ✅ | ✅ |
|
|
131
|
-
| [EA (ArchiMate)](https://pubs.opengroup.org/architecture/archimate-spec/) | ✅ | 🔶 | ✅ |
|
|
132
|
-
| [Git](https://git-scm.com/) | 🔶 | ✅ | ✅ | |
|
|
133
|
-
| [Event Sourcing](https://martinfowler.com/eaaDev/EventSourcing.html) | | ✅ | 🔶 | |
|
|
134
|
-
| [DDD](https://www.domainlanguage.com/ddd/) | ✅ | | ✅ | | |
|
|
135
|
-
| [C4](https://c4model.com/) | ✅ | | ✅ | | | |
|
|
136
|
-
| [Traceability Matrices](https://en.wikipedia.org/wiki/Traceability_matrix) | ✅ | | ✅ | | | 🔶 | | | | 🔶 | | |
|
|
137
|
-
| [
|
|
138
|
-
| [
|
|
139
|
-
| [
|
|
140
|
-
| [
|
|
141
|
-
| [
|
|
142
|
-
| [
|
|
143
|
-
| [GSD
|
|
144
|
-
| [
|
|
145
|
-
| [
|
|
146
|
-
| [
|
|
147
|
-
| [
|
|
148
|
-
| [
|
|
149
|
-
| [
|
|
150
|
-
| [
|
|
151
|
-
|
|
|
127
|
+
| System | Readable | Parseable | State | Nesting | Diagrams | Rationale | Constraints | History | Temporal | Inference | Impact | Scaffolding | Planning | Tracking |
|
|
128
|
+
|--------|----------|-----------|-------|---------|----------|-----------|-------------|---------|----------|-----------|--------|-------------|----------|----------|
|
|
129
|
+
| [MBSE (SysML)](https://www.omg.org/spec/SysML/) | 🔶 | ✅ | ✅ | ✅ | ✅ | 🔶 | ✅ | 🔶 | | | ✅ | | | |
|
|
130
|
+
| [Knowledge Graphs](https://www.w3.org/TR/rdf12-concepts/) | | ✅ | ✅ | ✅ | 🔶 | | 🔶 | | | ✅ | | | | |
|
|
131
|
+
| [EA (ArchiMate)](https://pubs.opengroup.org/architecture/archimate-spec/) | ✅ | 🔶 | ✅ | 🔶 | ✅ | | 🔶 | | | | ✅ | | | |
|
|
132
|
+
| [Git](https://git-scm.com/) | 🔶 | ✅ | ✅ | | | | | ✅ | ✅ | | | | | 🔶 |
|
|
133
|
+
| [Event Sourcing](https://martinfowler.com/eaaDev/EventSourcing.html) | | ✅ | 🔶 | | | | 🔶 | ✅ | ✅ | | | | | |
|
|
134
|
+
| [DDD](https://www.domainlanguage.com/ddd/) | ✅ | | ✅ | 🔶 | | | 🔶 | | | | | | | |
|
|
135
|
+
| [C4](https://c4model.com/) | ✅ | | ✅ | 🔶 | ✅ | | | | | | | | | |
|
|
136
|
+
| [Traceability Matrices](https://en.wikipedia.org/wiki/Traceability_matrix) | ✅ | | ✅ | | | | 🔶 | | | | 🔶 | | | 🔶 |
|
|
137
|
+
| [PRD](https://en.wikipedia.org/wiki/Product_requirements_document) | ✅ | | 🔶 | 🔶 | 🔶 | ✅ | 🔶 | 🔶 | | | 🔶 | | ✅ | 🔶 |
|
|
138
|
+
| [ADR](https://adr.github.io/) | ✅ | | | | | ✅ | | 🔶 | | | | | | |
|
|
139
|
+
| [RFC Processes](https://www.rfc-editor.org/rfc/rfc2026) | ✅ | | | | | ✅ | | 🔶 | | | | | 🔶 | 🔶 |
|
|
140
|
+
| [BDD (Gherkin)](https://cucumber.io/docs/gherkin/) | ✅ | ✅ | 🔶 | 🔶 | | | ✅ | | | | | 🔶 | 🔶 | ✅ |
|
|
141
|
+
| [Spec Kit](https://github.com/github/spec-kit) | ✅ | | ✅ | 🔶 | | 🔶 | | 🔶 | | | | ✅ | ✅ | ✅ |
|
|
142
|
+
| [Ralplan](https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/ralplan/SKILL.md) | ✅ | | 🔶 | | | ✅ | 🔶 | | | | | | ✅ | 🔶 |
|
|
143
|
+
| [GSD](https://github.com/gsd-build/get-shit-done) | ✅ | | | | | 🔶 | 🔶 | | | | | | | |
|
|
144
|
+
| [GSD-2](https://github.com/gsd-build/gsd-2) | ✅ | 🔶 | ✅ | ✅ | | 🔶 | 🔶 | ✅ | | | 🔶 | ✅ | ✅ | ✅ |
|
|
145
|
+
| [Taskmaster](https://github.com/eyaltoledano/claude-task-master) | ✅ | ✅ | ✅ | ✅ | | 🔶 | | 🔶 | | 🔶 | 🔶 | 🔶 | ✅ | ✅ |
|
|
146
|
+
| [OpenSpec](https://github.com/Fission-AI/OpenSpec) | ✅ | 🔶 | ✅ | 🔶 | | ✅ | | ✅ | | | | ✅ | ✅ | ✅ |
|
|
147
|
+
| [Kiro](https://github.com/kirodotdev/Kiro) | ✅ | 🔶 | ✅ | 🔶 | | 🔶 | 🔶 | 🔶 | | | 🔶 | ✅ | ✅ | ✅ |
|
|
148
|
+
| [cc-sdd](https://github.com/gotalab/cc-sdd) | ✅ | 🔶 | ✅ | 🔶 | | 🔶 | 🔶 | 🔶 | | | 🔶 | ✅ | ✅ | ✅ |
|
|
149
|
+
| [Ouroboros](https://github.com/Q00/ouroboros) | ✅ | 🔶 | ✅ | | | ✅ | ✅ | 🔶 | | ✅ | 🔶 | 🔶 | ✅ | 🔶 |
|
|
150
|
+
| [Spec Kitty](https://github.com/Priivacy-ai/spec-kitty) | ✅ | 🔶 | ✅ | 🔶 | | 🔶 | 🔶 | 🔶 | | | 🔶 | ✅ | ✅ | ✅ |
|
|
151
|
+
| [Shotgun](https://github.com/shotgun-sh/shotgun) | ✅ | 🔶 | 🔶 | | | 🔶 | | 🔶 | | | 🔶 | 🔶 | ✅ | 🔶 |
|
|
152
|
+
| [Superpowers](https://github.com/obra/superpowers) | ✅ | 🔶 | 🔶 | 🔶 | | 🔶 | ✅ | 🔶 | | ✅ | 🔶 | ✅ | ✅ | ✅ |
|
|
153
|
+
| **SysProM** | ✅ | ✅ | ✅ | ✅ | 🔶 | ✅ | ✅ | ✅ | ✅ | | 🔶 | ✅ | ✅ | ✅ |
|
|
152
154
|
|
|
153
155
|
✅ = first-class support. 🔶 = partial or implicit.
|
|
154
156
|
|
|
@@ -98,8 +98,8 @@ export declare function initDocument(prefix: string, name: string): SysProMDocum
|
|
|
98
98
|
* @param doc - The SysProM document.
|
|
99
99
|
* @param prefix - Plan prefix.
|
|
100
100
|
* @param name - Name for the new item.
|
|
101
|
-
* @param parentId -
|
|
102
|
-
* @returns The
|
|
101
|
+
* @param parentId - Optional parent change node ID for nesting.
|
|
102
|
+
* @returns The updated document with the new task added.
|
|
103
103
|
* @example
|
|
104
104
|
* ```ts
|
|
105
105
|
* const updated = addTask(doc, "PLAN", "Implement auth");
|
|
@@ -110,11 +110,11 @@ export declare function addTask(doc: SysProMDocument, prefix: string, name?: str
|
|
|
110
110
|
* Check if a change node's task is complete.
|
|
111
111
|
*
|
|
112
112
|
* If no subsystem or no change children in subsystem:
|
|
113
|
-
* - All items in node.plan must have done === true AND at least one item must exist
|
|
113
|
+
* - All items in node.plan must have done === true AND at least one item must exist.
|
|
114
114
|
* If subsystem has change children:
|
|
115
|
-
* - All children must be recursively done AND own plan items (if any) must be done
|
|
116
|
-
* @param node - The node to
|
|
117
|
-
* @returns
|
|
115
|
+
* - All children must be recursively done AND own plan items (if any) must be done.
|
|
116
|
+
* @param node - The change node to evaluate.
|
|
117
|
+
* @returns Whether all tasks in the node's plan are complete.
|
|
118
118
|
* @example
|
|
119
119
|
* ```ts
|
|
120
120
|
* isTaskDone(changeNode); // => true if all plan items done
|
|
@@ -138,8 +138,8 @@ export declare function countTasks(node: Node): TaskCount;
|
|
|
138
138
|
* Inspect a document and return workflow completeness for a given prefix.
|
|
139
139
|
* Never throws — missing nodes are reported as "not defined".
|
|
140
140
|
* @param doc - The SysProM document.
|
|
141
|
-
* @param prefix -
|
|
142
|
-
* @returns
|
|
141
|
+
* @param prefix - ID prefix identifying the plan (e.g. "PLAN").
|
|
142
|
+
* @returns Comprehensive status of all plan components.
|
|
143
143
|
* @example
|
|
144
144
|
* ```ts
|
|
145
145
|
* const status = planStatus(doc, "PLAN");
|
|
@@ -150,8 +150,8 @@ export declare function planStatus(doc: SysProMDocument, prefix: string): PlanSt
|
|
|
150
150
|
* Return per-task completion data.
|
|
151
151
|
* Tasks (change nodes) are discovered from PROT-IMPL.subsystem, sorted topologically.
|
|
152
152
|
* @param doc - The SysProM document.
|
|
153
|
-
* @param prefix -
|
|
154
|
-
* @returns
|
|
153
|
+
* @param prefix - ID prefix identifying the plan (e.g. "PLAN").
|
|
154
|
+
* @returns Per-phase progress with task counts and percentages.
|
|
155
155
|
* @example
|
|
156
156
|
* ```ts
|
|
157
157
|
* const phases = planProgress(doc, "PLAN");
|
|
@@ -162,12 +162,12 @@ export declare function planProgress(doc: SysProMDocument, prefix: string): Phas
|
|
|
162
162
|
* Validate readiness to enter the given phase (1-indexed).
|
|
163
163
|
*
|
|
164
164
|
* Always checks:
|
|
165
|
-
* - Each capability ({prefix}-US-*) has a change node that implements it
|
|
166
|
-
* - Each capability has non-placeholder acceptance criteria
|
|
167
|
-
* - Each invariant ({prefix}-FR-*) has a change node that implements it
|
|
165
|
+
* - Each capability ({prefix}-US-*) has a change node that implements it.
|
|
166
|
+
* - Each capability has non-placeholder acceptance criteria.
|
|
167
|
+
* - Each invariant ({prefix}-FR-*) has a change node that implements it.
|
|
168
168
|
*
|
|
169
169
|
* Additionally for phase N > 1:
|
|
170
|
-
* - All tasks in phase N-1 must be done
|
|
170
|
+
* - All tasks in phase N-1 must be done.
|
|
171
171
|
* @param doc - The SysProM document.
|
|
172
172
|
* @param prefix - Plan prefix.
|
|
173
173
|
* @param phase - Phase number (1-indexed).
|
package/dist/src/speckit/plan.js
CHANGED
|
@@ -256,8 +256,8 @@ export function initDocument(prefix, name) {
|
|
|
256
256
|
* @param doc - The SysProM document.
|
|
257
257
|
* @param prefix - Plan prefix.
|
|
258
258
|
* @param name - Name for the new item.
|
|
259
|
-
* @param parentId -
|
|
260
|
-
* @returns The
|
|
259
|
+
* @param parentId - Optional parent change node ID for nesting.
|
|
260
|
+
* @returns The updated document with the new task added.
|
|
261
261
|
* @example
|
|
262
262
|
* ```ts
|
|
263
263
|
* const updated = addTask(doc, "PLAN", "Implement auth");
|
|
@@ -323,9 +323,9 @@ export function addTask(doc, prefix, name, parentId) {
|
|
|
323
323
|
* @param doc - The SysProM document.
|
|
324
324
|
* @param protImpl - Implementation protocol node.
|
|
325
325
|
* @param prefix - Plan prefix.
|
|
326
|
-
* @param parentId -
|
|
327
|
-
* @param name -
|
|
328
|
-
* @returns The
|
|
326
|
+
* @param parentId - ID of the parent change node to nest under.
|
|
327
|
+
* @param name - Human-readable task name.
|
|
328
|
+
* @returns The updated document with the nested task added.
|
|
329
329
|
* @example
|
|
330
330
|
* ```ts
|
|
331
331
|
* const updated = addTaskToParent(doc, protImpl, "PLAN", "CH1");
|
|
@@ -456,11 +456,11 @@ function addTaskToParent(doc, protImpl, prefix, parentId, name) {
|
|
|
456
456
|
* Check if a change node's task is complete.
|
|
457
457
|
*
|
|
458
458
|
* If no subsystem or no change children in subsystem:
|
|
459
|
-
* - All items in node.plan must have done === true AND at least one item must exist
|
|
459
|
+
* - All items in node.plan must have done === true AND at least one item must exist.
|
|
460
460
|
* If subsystem has change children:
|
|
461
|
-
* - All children must be recursively done AND own plan items (if any) must be done
|
|
462
|
-
* @param node - The node to
|
|
463
|
-
* @returns
|
|
461
|
+
* - All children must be recursively done AND own plan items (if any) must be done.
|
|
462
|
+
* @param node - The change node to evaluate.
|
|
463
|
+
* @returns Whether all tasks in the node's plan are complete.
|
|
464
464
|
* @example
|
|
465
465
|
* ```ts
|
|
466
466
|
* isTaskDone(changeNode); // => true if all plan items done
|
|
@@ -525,8 +525,8 @@ export function countTasks(node) {
|
|
|
525
525
|
* Inspect a document and return workflow completeness for a given prefix.
|
|
526
526
|
* Never throws — missing nodes are reported as "not defined".
|
|
527
527
|
* @param doc - The SysProM document.
|
|
528
|
-
* @param prefix -
|
|
529
|
-
* @returns
|
|
528
|
+
* @param prefix - ID prefix identifying the plan (e.g. "PLAN").
|
|
529
|
+
* @returns Comprehensive status of all plan components.
|
|
530
530
|
* @example
|
|
531
531
|
* ```ts
|
|
532
532
|
* const status = planStatus(doc, "PLAN");
|
|
@@ -630,8 +630,8 @@ export function planStatus(doc, prefix) {
|
|
|
630
630
|
* Return per-task completion data.
|
|
631
631
|
* Tasks (change nodes) are discovered from PROT-IMPL.subsystem, sorted topologically.
|
|
632
632
|
* @param doc - The SysProM document.
|
|
633
|
-
* @param prefix -
|
|
634
|
-
* @returns
|
|
633
|
+
* @param prefix - ID prefix identifying the plan (e.g. "PLAN").
|
|
634
|
+
* @returns Per-phase progress with task counts and percentages.
|
|
635
635
|
* @example
|
|
636
636
|
* ```ts
|
|
637
637
|
* const phases = planProgress(doc, "PLAN");
|
|
@@ -671,12 +671,12 @@ export function planProgress(doc, prefix) {
|
|
|
671
671
|
* Validate readiness to enter the given phase (1-indexed).
|
|
672
672
|
*
|
|
673
673
|
* Always checks:
|
|
674
|
-
* - Each capability ({prefix}-US-*) has a change node that implements it
|
|
675
|
-
* - Each capability has non-placeholder acceptance criteria
|
|
676
|
-
* - Each invariant ({prefix}-FR-*) has a change node that implements it
|
|
674
|
+
* - Each capability ({prefix}-US-*) has a change node that implements it.
|
|
675
|
+
* - Each capability has non-placeholder acceptance criteria.
|
|
676
|
+
* - Each invariant ({prefix}-FR-*) has a change node that implements it.
|
|
677
677
|
*
|
|
678
678
|
* Additionally for phase N > 1:
|
|
679
|
-
* - All tasks in phase N-1 must be done
|
|
679
|
+
* - All tasks in phase N-1 must be done.
|
|
680
680
|
* @param doc - The SysProM document.
|
|
681
681
|
* @param prefix - Plan prefix.
|
|
682
682
|
* @param phase - Phase number (1-indexed).
|