Why: Direct HTTP and surface command dispatch could mutate RDM project facts without an analyzed committed-message manifest. Evidence: Command-bus, server, and app suites pass with a classification regression for formal writes and read/proof exceptions. Impact: Formal HTTP writes require a conversation anchor and committed proceed decision; surface writes fail closed until they can carry the same proof. Refs: TT-N03 TT-R01
17 lines
624 B
Go
17 lines
624 B
Go
package cmdbus
|
|
|
|
import "testing"
|
|
|
|
func TestFormalRDMWritesRequireProjectWorkDecision(t *testing.T) {
|
|
for _, id := range []string{"rdm.reqs.add", "rdm.docs.instantiate", "rdm.review.doc.approve", "rdm.structure.propose", "rdm.trace.confirm"} {
|
|
if !RequiresProjectWorkDecision(id) {
|
|
t.Errorf("formal write %s bypassed project source preflight", id)
|
|
}
|
|
}
|
|
for _, id := range []string{"rdm.inspect.tree", "rdm.reqs.list", "rdm.structure.proposals", "rdm.structure.issue", "rdm.structure.decide"} {
|
|
if RequiresProjectWorkDecision(id) {
|
|
t.Errorf("read or separately proven command %s was misclassified", id)
|
|
}
|
|
}
|
|
}
|