@jamesaphoenix/tx-test-utils 0.12.0 → 0.13.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/README.md +27 -12
- package/dist/helpers/shared-test-layer.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ Most users should start with just the first two.
|
|
|
33
33
|
tx init --codex # or: --claude, or plain tx init
|
|
34
34
|
tx add "Write auth PRD" --json
|
|
35
35
|
tx add "Implement auth flow" --json
|
|
36
|
-
tx block <implement-task-id> <prd-task-id>
|
|
36
|
+
tx dep block <implement-task-id> <prd-task-id>
|
|
37
37
|
tx ready
|
|
38
38
|
tx show <prd-task-id>
|
|
39
39
|
tx done <prd-task-id>
|
|
@@ -51,12 +51,16 @@ This proves the basic loop:
|
|
|
51
51
|
### Day 2: Spec-Driven Development
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
tx doc add prd auth-flow --title "Auth Flow"
|
|
54
|
+
tx doc add prd auth-flow-prd --title "Auth Flow PRD"
|
|
55
|
+
tx doc add design auth-flow-design --title "Auth Flow Design"
|
|
56
|
+
tx doc link auth-flow-prd auth-flow-design
|
|
55
57
|
# add or update tests with [INV-*], _INV_*, @spec, or .tx/spec-tests.yml
|
|
56
58
|
tx spec discover
|
|
57
|
-
tx spec status --doc auth-flow
|
|
59
|
+
tx spec status --doc auth-flow-design
|
|
60
|
+
tx decompose auth-flow-design --dry-run
|
|
61
|
+
tx decompose auth-flow-design
|
|
58
62
|
vitest run --reporter=json | tx spec batch --from vitest
|
|
59
|
-
tx spec complete --doc auth-flow --by you
|
|
63
|
+
tx spec complete --doc auth-flow-design --by you
|
|
60
64
|
```
|
|
61
65
|
|
|
62
66
|
Use the spec primitives like this:
|
|
@@ -65,6 +69,16 @@ Use the spec primitives like this:
|
|
|
65
69
|
- `tx spec status`: human-readable blocker view for one scope
|
|
66
70
|
- `tx spec health`: repo rollup, not part of the minimum day-1 loop
|
|
67
71
|
|
|
72
|
+
### Human-in-Loop Example
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
task=$(tx ready --limit 1 --json | jq -r '.[0].id')
|
|
76
|
+
codex "Read AGENTS.md. For task $task: run tx show $task, make sure a paired PRD/design doc is linked, then decompose the work into tx subtasks and dependency edges."
|
|
77
|
+
echo "Review tx show $task, tx dep tree $task, and the linked PRD/DD docs, then press Enter to continue..."
|
|
78
|
+
read
|
|
79
|
+
codex "Read AGENTS.md. For task $task: execute the approved ready work from the linked PRD/DD docs and keep tx updated."
|
|
80
|
+
```
|
|
81
|
+
|
|
68
82
|
## The Six Layers
|
|
69
83
|
|
|
70
84
|
### 1. Task Management
|
|
@@ -76,7 +90,7 @@ Core queue and persistence:
|
|
|
76
90
|
- `tx ready`
|
|
77
91
|
- `tx show`
|
|
78
92
|
- `tx done`
|
|
79
|
-
- `tx block`
|
|
93
|
+
- `tx dep block`
|
|
80
94
|
- `tx sync`
|
|
81
95
|
|
|
82
96
|
### 2. Spec-Driven Development
|
|
@@ -84,6 +98,7 @@ Core queue and persistence:
|
|
|
84
98
|
Docs-first intent and closure:
|
|
85
99
|
|
|
86
100
|
- `tx doc`
|
|
101
|
+
- `tx decompose`
|
|
87
102
|
- `tx spec`
|
|
88
103
|
- `tx decision`
|
|
89
104
|
|
|
@@ -98,18 +113,18 @@ Durable knowledge and prompt context:
|
|
|
98
113
|
|
|
99
114
|
Controls for agents with more freedom:
|
|
100
115
|
|
|
101
|
-
- `tx label`
|
|
102
|
-
- `tx guard`
|
|
103
|
-
- `tx verify`
|
|
104
|
-
- `tx reflect`
|
|
105
|
-
- `tx gate`
|
|
116
|
+
- `tx auto label`
|
|
117
|
+
- `tx auto guard`
|
|
118
|
+
- `tx auto verify`
|
|
119
|
+
- `tx auto reflect`
|
|
120
|
+
- `tx auto gate`
|
|
106
121
|
|
|
107
122
|
### 5. Coordination
|
|
108
123
|
|
|
109
124
|
Multi-worker and multi-actor primitives:
|
|
110
125
|
|
|
111
126
|
- `tx claim`
|
|
112
|
-
- `tx send` / `tx inbox`
|
|
127
|
+
- `tx msg send` / `tx msg inbox`
|
|
113
128
|
- `tx group-context`
|
|
114
129
|
|
|
115
130
|
### 6. Observability
|
|
@@ -118,7 +133,7 @@ Operational visibility once the earlier layers are in place:
|
|
|
118
133
|
|
|
119
134
|
- `tx trace`
|
|
120
135
|
- `tx spec health`
|
|
121
|
-
- `tx stats`
|
|
136
|
+
- `tx diag stats`
|
|
122
137
|
- dashboard
|
|
123
138
|
|
|
124
139
|
## Interfaces
|
|
@@ -56,7 +56,7 @@ export interface SharedTestLayer<L> {
|
|
|
56
56
|
* ```
|
|
57
57
|
*/
|
|
58
58
|
export declare const createSharedTestLayer: () => Promise<{
|
|
59
|
-
layer: Layer.Layer<import("@jamesaphoenix/tx-core").MigrationService | import("@jamesaphoenix/tx-core").SqliteClient | import("@jamesaphoenix/tx-core").TaskRepository | import("@jamesaphoenix/tx-core").DependencyRepository | import("@jamesaphoenix/tx-core").LearningRepository | import("@jamesaphoenix/tx-core").FileLearningRepository | import("@jamesaphoenix/tx-core").AttemptRepository | import("@jamesaphoenix/tx-core").RunRepository | import("@jamesaphoenix/tx-core").AnchorRepository | import("@jamesaphoenix/tx-core").EdgeRepository | import("@jamesaphoenix/tx-core").DeduplicationRepository | import("@jamesaphoenix/tx-core").CandidateRepository | import("@jamesaphoenix/tx-core").TrackedProjectRepository | import("@jamesaphoenix/tx-core").WorkerRepository | import("@jamesaphoenix/tx-core").ClaimRepository | import("@jamesaphoenix/tx-core").ProcessRegistryRepository | import("@jamesaphoenix/tx-core").OrchestratorStateRepository | import("@jamesaphoenix/tx-core").GuardRepository | import("@jamesaphoenix/tx-core").PinRepository | import("@jamesaphoenix/tx-core").TaskService | import("@jamesaphoenix/tx-core").DependencyService | import("@jamesaphoenix/tx-core").ClaimService | import("@jamesaphoenix/tx-core").ReadyService | import("@jamesaphoenix/tx-core").HierarchyService | import("@jamesaphoenix/tx-core").EdgeService | typeof import("@jamesaphoenix/tx-core").GraphExpansionService | import("@jamesaphoenix/tx-core").FeedbackTrackerService | import("@jamesaphoenix/tx-core").DiversifierService | import("@jamesaphoenix/tx-core").RetrieverService | import("@jamesaphoenix/tx-core").LearningService | import("@jamesaphoenix/tx-core").FileLearningService | import("@jamesaphoenix/tx-core").AttemptService | import("@jamesaphoenix/tx-core").AnchorVerificationService | import("@jamesaphoenix/tx-core").AnchorService | import("@jamesaphoenix/tx-core").DeduplicationService | import("@jamesaphoenix/tx-core").StreamService | import("@jamesaphoenix/tx-core").
|
|
59
|
+
layer: Layer.Layer<import("@jamesaphoenix/tx-core").MigrationService | import("@jamesaphoenix/tx-core").SqliteClient | import("@jamesaphoenix/tx-core").TaskRepository | import("@jamesaphoenix/tx-core").DependencyRepository | import("@jamesaphoenix/tx-core").LearningRepository | import("@jamesaphoenix/tx-core").FileLearningRepository | import("@jamesaphoenix/tx-core").AttemptRepository | import("@jamesaphoenix/tx-core").RunRepository | import("@jamesaphoenix/tx-core").AnchorRepository | import("@jamesaphoenix/tx-core").EdgeRepository | import("@jamesaphoenix/tx-core").DeduplicationRepository | import("@jamesaphoenix/tx-core").CandidateRepository | import("@jamesaphoenix/tx-core").TrackedProjectRepository | import("@jamesaphoenix/tx-core").WorkerRepository | import("@jamesaphoenix/tx-core").ClaimRepository | import("@jamesaphoenix/tx-core").ProcessRegistryRepository | import("@jamesaphoenix/tx-core").OrchestratorStateRepository | import("@jamesaphoenix/tx-core").GuardRepository | import("@jamesaphoenix/tx-core").PinRepository | import("@jamesaphoenix/tx-core").DocRepository | import("@jamesaphoenix/tx-core").TaskService | import("@jamesaphoenix/tx-core").DependencyService | import("@jamesaphoenix/tx-core").ClaimService | import("@jamesaphoenix/tx-core").ReadyService | import("@jamesaphoenix/tx-core").HierarchyService | import("@jamesaphoenix/tx-core").EdgeService | typeof import("@jamesaphoenix/tx-core").GraphExpansionService | import("@jamesaphoenix/tx-core").FeedbackTrackerService | import("@jamesaphoenix/tx-core").DiversifierService | import("@jamesaphoenix/tx-core").RetrieverService | import("@jamesaphoenix/tx-core").LearningService | import("@jamesaphoenix/tx-core").FileLearningService | import("@jamesaphoenix/tx-core").AttemptService | import("@jamesaphoenix/tx-core").AnchorVerificationService | import("@jamesaphoenix/tx-core").AnchorService | import("@jamesaphoenix/tx-core").DeduplicationService | import("@jamesaphoenix/tx-core").StreamService | import("@jamesaphoenix/tx-core").SyncService | import("@jamesaphoenix/tx-core").SwarmVerificationService | import("@jamesaphoenix/tx-core").PromotionService | import("@jamesaphoenix/tx-core").WorkerService | import("@jamesaphoenix/tx-core").RunHeartbeatService | import("@jamesaphoenix/tx-core").ProcessRegistryService | import("@jamesaphoenix/tx-core").OrchestratorService | import("@jamesaphoenix/tx-core").DaemonService | import("@jamesaphoenix/tx-core").TracingService | import("@jamesaphoenix/tx-core").CompactionRepository | import("@jamesaphoenix/tx-core").CompactionService | import("@jamesaphoenix/tx-core").ValidationService | import("@jamesaphoenix/tx-core").MessageRepository | import("@jamesaphoenix/tx-core").MessageService | import("@jamesaphoenix/tx-core").DocService | import("@jamesaphoenix/tx-core").MemoryDocumentRepository | import("@jamesaphoenix/tx-core").MemoryLinkRepository | import("@jamesaphoenix/tx-core").MemoryPropertyRepository | import("@jamesaphoenix/tx-core").MemorySourceRepository | import("@jamesaphoenix/tx-core").MemoryService | import("@jamesaphoenix/tx-core").MemoryRetrieverService | import("@jamesaphoenix/tx-core").PinService | import("@jamesaphoenix/tx-core").LabelRepository | import("@jamesaphoenix/tx-core").GuardService | import("@jamesaphoenix/tx-core").VerifyService | import("@jamesaphoenix/tx-core").ReflectService | import("@jamesaphoenix/tx-core").SpecTraceRepository | import("@jamesaphoenix/tx-core").SpecTraceService | import("@jamesaphoenix/tx-core/layer").DecisionRepository | import("@jamesaphoenix/tx-core").DecisionService | import("@jamesaphoenix/tx-core").DomainEventRepository | import("@jamesaphoenix/tx-core").SupervisionRepository | import("@jamesaphoenix/tx-core").DocReviewRepository | import("@jamesaphoenix/tx-core").DomainEventService | import("@jamesaphoenix/tx-core").SupervisionService | import("@jamesaphoenix/tx-core").DocReviewService | import("@jamesaphoenix/tx-core").ReviewRuntime, import("@jamesaphoenix/tx-core").DatabaseError, never>;
|
|
60
60
|
reset: () => Promise<void>;
|
|
61
61
|
close: () => Promise<void>;
|
|
62
62
|
getDb: () => Database;
|