Skip to content

Commit d412bd7

Browse files
committed
docs(sysprom): record decisions and changes for issues #19 and #24
DEC46 + CHG44: Add query relationship-types command to discover valid endpoint types (issue #19) DEC47 + CHG45: Make decision validation lifecycle-aware to allow intentionally undecided decisions (issue #24)
1 parent 142662d commit d412bd7

File tree

3 files changed

+100
-0
lines changed

3 files changed

+100
-0
lines changed

.SysProM.json

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3938,6 +3938,58 @@
39383938
"CLI commands: update node, add realisation, add change"
39393939
],
39403940
"type": "change"
3941+
},
3942+
{
3943+
"context": "Issue #19 reported that users have no way to discover valid relationship endpoint types from help text. They only learn what is valid after attempting to add a relationship and getting an error.",
3944+
"id": "DEC46",
3945+
"name": "CLI: expose relationship endpoint type discovery",
3946+
"options": [
3947+
{
3948+
"description": "Create a new query subcommand to list valid endpoint types for all relationship types",
3949+
"id": "OPT-A"
3950+
},
3951+
{
3952+
"description": "Add endpoint type documentation directly to the add-rel help output",
3953+
"id": "OPT-B"
3954+
}
3955+
],
3956+
"rationale": "A new query subcommand is more discoverable via help text, provides structured data output, and follows the CLI's existing pattern of query subcommands for different node and relationship types.",
3957+
"selected": "OPT-A",
3958+
"type": "decision"
3959+
},
3960+
{
3961+
"id": "CHG44",
3962+
"name": "Implement query relationship-types command",
3963+
"scope": [
3964+
"src/operations/query-relationship-types.ts,src/cli/commands/query.ts"
3965+
],
3966+
"type": "change"
3967+
},
3968+
{
3969+
"context": "Issue #24 reported that the validator requires all decisions to have a selected option, but some decisions are intentionally undecided (proposed, experimental, deferred states).",
3970+
"id": "DEC47",
3971+
"name": "Validator: allow intentionally undecided decisions",
3972+
"options": [
3973+
{
3974+
"description": "Make selected option requirement lifecycle-aware — only require it for decided states (accepted, implemented, adopted)",
3975+
"id": "OPT-A"
3976+
},
3977+
{
3978+
"description": "Add a new field to mark decisions as intentionally undecided",
3979+
"id": "OPT-B"
3980+
}
3981+
],
3982+
"rationale": "Lifecycle-aware validation is simpler, requires no schema changes, and aligns with the semantic meaning of undecided lifecycle states.",
3983+
"selected": "OPT-A",
3984+
"type": "decision"
3985+
},
3986+
{
3987+
"id": "CHG45",
3988+
"name": "Make decision validation lifecycle-aware",
3989+
"scope": [
3990+
"src/operations/validate.ts,tests/validate.unit.test.ts"
3991+
],
3992+
"type": "change"
39413993
}
39423994
],
39433995
"relationships": [
@@ -5080,6 +5132,16 @@
50805132
"from": "CHG43",
50815133
"to": "DEC45",
50825134
"type": "implements"
5135+
},
5136+
{
5137+
"from": "CHG44",
5138+
"to": "DEC46",
5139+
"type": "implements"
5140+
},
5141+
{
5142+
"from": "CHG45",
5143+
"to": "DEC47",
5144+
"type": "implements"
50835145
}
50845146
]
50855147
}

.SysProM/CHANGES.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -784,3 +784,17 @@ Context: Incrementally resolving open GitHub issues by adding missing CLI flags.
784784
Scope:
785785
- CLI commands: update node, add realisation, add change
786786

787+
### CHG44 — Implement query relationship-types command
788+
789+
- Implements: [DEC46](./DECISIONS.md#dec46--cli-expose-relationship-endpoint-type-discovery)
790+
791+
Scope:
792+
- src/operations/query-relationship-types.ts,src/cli/commands/query.ts
793+
794+
### CHG45 — Make decision validation lifecycle-aware
795+
796+
- Implements: [DEC47](./DECISIONS.md#dec47--validator-allow-intentionally-undecided-decisions)
797+
798+
Scope:
799+
- src/operations/validate.ts,tests/validate.unit.test.ts
800+

.SysProM/DECISIONS.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -934,3 +934,27 @@ Chosen: OPT-A
934934

935935
Rationale: Improves UX by closing gaps between schema capabilities and CLI exposure; reduces need for manual JSON editing
936936

937+
### DEC46 — CLI: expose relationship endpoint type discovery
938+
939+
Context: Issue #19 reported that users have no way to discover valid relationship endpoint types from help text. They only learn what is valid after attempting to add a relationship and getting an error.
940+
941+
Options:
942+
- OPT-A: Create a new query subcommand to list valid endpoint types for all relationship types
943+
- OPT-B: Add endpoint type documentation directly to the add-rel help output
944+
945+
Chosen: OPT-A
946+
947+
Rationale: A new query subcommand is more discoverable via help text, provides structured data output, and follows the CLI's existing pattern of query subcommands for different node and relationship types.
948+
949+
### DEC47 — Validator: allow intentionally undecided decisions
950+
951+
Context: Issue #24 reported that the validator requires all decisions to have a selected option, but some decisions are intentionally undecided (proposed, experimental, deferred states).
952+
953+
Options:
954+
- OPT-A: Make selected option requirement lifecycle-aware — only require it for decided states (accepted, implemented, adopted)
955+
- OPT-B: Add a new field to mark decisions as intentionally undecided
956+
957+
Chosen: OPT-A
958+
959+
Rationale: Lifecycle-aware validation is simpler, requires no schema changes, and aligns with the semantic meaning of undecided lifecycle states.
960+

0 commit comments

Comments
 (0)