feat: add minimal run engine
This commit is contained in:
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/colliding-spec.json
vendored
Normal file
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/colliding-spec.json
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"phases": [
|
||||
{
|
||||
"key": "spec",
|
||||
"title": "Colliding planned phase",
|
||||
"objective": "Prove planned phases cannot reuse template phase keys.",
|
||||
"roles": ["spec_writer"],
|
||||
"expectedArtifact": {
|
||||
"path": "artifacts/colliding-spec.json",
|
||||
"schema": "dev/spec@1"
|
||||
},
|
||||
"gates": [],
|
||||
"tasks": [
|
||||
{
|
||||
"id": "TASK-1",
|
||||
"title": "Colliding task",
|
||||
"role": "spec_writer",
|
||||
"writeSet": ["src/**"],
|
||||
"dependsOn": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/mixed-unbound-role.json
vendored
Normal file
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/mixed-unbound-role.json
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"phases": [
|
||||
{
|
||||
"key": "mixed-unbound",
|
||||
"title": "Mixed bound and unbound planned phase",
|
||||
"objective": "Prove every planned phase role is validated before insertion.",
|
||||
"roles": ["spec_writer", "missing_role"],
|
||||
"expectedArtifact": {
|
||||
"path": "artifacts/mixed-unbound-spec.json",
|
||||
"schema": "dev/spec@1"
|
||||
},
|
||||
"gates": [],
|
||||
"tasks": [
|
||||
{
|
||||
"id": "TASK-1",
|
||||
"title": "Impossible mixed-role task",
|
||||
"role": "missing_role",
|
||||
"writeSet": ["src/**"],
|
||||
"dependsOn": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/ok.json
vendored
Normal file
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/ok.json
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"phases": [
|
||||
{
|
||||
"key": "implement",
|
||||
"title": "Implement requested change",
|
||||
"objective": "Use the fake development run to prove the engine path.",
|
||||
"roles": ["spec_writer"],
|
||||
"expectedArtifact": {
|
||||
"path": "artifacts/implementation-spec.json",
|
||||
"schema": "dev/spec@1"
|
||||
},
|
||||
"gates": [],
|
||||
"tasks": [
|
||||
{
|
||||
"id": "TASK-1",
|
||||
"title": "Apply implementation",
|
||||
"role": "spec_writer",
|
||||
"writeSet": ["src/**"],
|
||||
"dependsOn": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
11
tests/fixtures/fake-artifacts/dev/phase-plan@1/skip-only.json
vendored
Normal file
11
tests/fixtures/fake-artifacts/dev/phase-plan@1/skip-only.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"phases": [
|
||||
{
|
||||
"key": "documentation-note",
|
||||
"title": "Documentation Note",
|
||||
"objective": "Record that this planned phase has no artifact and should be skipped.",
|
||||
"roles": ["phase_planner"],
|
||||
"gates": []
|
||||
}
|
||||
]
|
||||
}
|
||||
44
tests/fixtures/fake-artifacts/dev/phase-plan@1/two-phases.json
vendored
Normal file
44
tests/fixtures/fake-artifacts/dev/phase-plan@1/two-phases.json
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"phases": [
|
||||
{
|
||||
"key": "implement-a",
|
||||
"title": "Implement first fake change",
|
||||
"objective": "First planned phase for replay serialization tests.",
|
||||
"roles": ["spec_writer"],
|
||||
"expectedArtifact": {
|
||||
"path": "artifacts/implementation-a-spec.json",
|
||||
"schema": "dev/spec@1"
|
||||
},
|
||||
"gates": [],
|
||||
"tasks": [
|
||||
{
|
||||
"id": "TASK-A",
|
||||
"title": "Apply first implementation",
|
||||
"role": "spec_writer",
|
||||
"writeSet": ["src/a/**"],
|
||||
"dependsOn": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "implement-b",
|
||||
"title": "Implement second fake change",
|
||||
"objective": "Second planned phase for replay serialization tests.",
|
||||
"roles": ["spec_writer"],
|
||||
"expectedArtifact": {
|
||||
"path": "artifacts/implementation-b-spec.json",
|
||||
"schema": "dev/spec@1"
|
||||
},
|
||||
"gates": [],
|
||||
"tasks": [
|
||||
{
|
||||
"id": "TASK-B",
|
||||
"title": "Apply second implementation",
|
||||
"role": "spec_writer",
|
||||
"writeSet": ["src/b/**"],
|
||||
"dependsOn": ["TASK-A"]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/unbound-role.json
vendored
Normal file
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/unbound-role.json
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"phases": [
|
||||
{
|
||||
"key": "unbound",
|
||||
"title": "Unbound planned phase",
|
||||
"objective": "Prove approval-triggered advancement fails terminally on invalid plan roles.",
|
||||
"roles": ["missing_role"],
|
||||
"expectedArtifact": {
|
||||
"path": "artifacts/unbound-spec.json",
|
||||
"schema": "dev/spec@1"
|
||||
},
|
||||
"gates": [],
|
||||
"tasks": [
|
||||
{
|
||||
"id": "TASK-1",
|
||||
"title": "Impossible task",
|
||||
"role": "missing_role",
|
||||
"writeSet": ["src/**"],
|
||||
"dependsOn": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/unknown-schema.json
vendored
Normal file
24
tests/fixtures/fake-artifacts/dev/phase-plan@1/unknown-schema.json
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"phases": [
|
||||
{
|
||||
"key": "unknown-schema",
|
||||
"title": "Unknown schema planned phase",
|
||||
"objective": "Prove fatal planned-phase failures clean up every session.",
|
||||
"roles": ["spec_writer"],
|
||||
"expectedArtifact": {
|
||||
"path": "artifacts/unknown-schema.json",
|
||||
"schema": "dev/unknown-schema@1"
|
||||
},
|
||||
"gates": [],
|
||||
"tasks": [
|
||||
{
|
||||
"id": "TASK-1",
|
||||
"title": "Write unknown schema artifact",
|
||||
"role": "spec_writer",
|
||||
"writeSet": ["src/**"],
|
||||
"dependsOn": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user