tribunal-kit 4.4.2 → 4.4.3
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/.agent/scripts/marathon_harness.js +799 -0
- package/.agent/scripts/prompt_compiler.js +56 -0
- package/.agent/skills/agent-organizer/SKILL.md +42 -0
- package/.agent/skills/agentic-patterns/SKILL.md +42 -0
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +42 -0
- package/.agent/skills/api-patterns/SKILL.md +42 -0
- package/.agent/skills/api-security-auditor/SKILL.md +42 -0
- package/.agent/skills/app-builder/SKILL.md +42 -0
- package/.agent/skills/appflow-wireframe/SKILL.md +42 -0
- package/.agent/skills/architecture/SKILL.md +42 -0
- package/.agent/skills/authentication-best-practices/SKILL.md +42 -0
- package/.agent/skills/backend-security-expert/SKILL.md +122 -0
- package/.agent/skills/bash-linux/SKILL.md +42 -0
- package/.agent/skills/behavioral-modes/SKILL.md +42 -0
- package/.agent/skills/brainstorming/SKILL.md +42 -0
- package/.agent/skills/building-native-ui/SKILL.md +42 -0
- package/.agent/skills/clean-code/SKILL.md +42 -0
- package/.agent/skills/code-review-checklist/SKILL.md +42 -0
- package/.agent/skills/config-validator/SKILL.md +42 -0
- package/.agent/skills/csharp-developer/SKILL.md +42 -0
- package/.agent/skills/data-validation-schemas/SKILL.md +42 -0
- package/.agent/skills/database-design/SKILL.md +42 -0
- package/.agent/skills/deployment-procedures/SKILL.md +42 -0
- package/.agent/skills/devops-engineer/SKILL.md +42 -0
- package/.agent/skills/devops-incident-responder/SKILL.md +42 -0
- package/.agent/skills/documentation-templates/SKILL.md +42 -0
- package/.agent/skills/edge-computing/SKILL.md +42 -0
- package/.agent/skills/error-resilience/SKILL.md +42 -0
- package/.agent/skills/extract-design-system/SKILL.md +42 -0
- package/.agent/skills/framer-motion-expert/SKILL.md +42 -0
- package/.agent/skills/frontend-design/SKILL.md +42 -0
- package/.agent/skills/frontend-security-expert/SKILL.md +123 -0
- package/.agent/skills/game-design-expert/SKILL.md +42 -0
- package/.agent/skills/game-engineering-expert/SKILL.md +42 -0
- package/.agent/skills/geo-fundamentals/SKILL.md +42 -0
- package/.agent/skills/github-operations/SKILL.md +42 -0
- package/.agent/skills/gsap-core/SKILL.md +42 -0
- package/.agent/skills/gsap-frameworks/SKILL.md +42 -0
- package/.agent/skills/gsap-performance/SKILL.md +42 -0
- package/.agent/skills/gsap-plugins/SKILL.md +42 -0
- package/.agent/skills/gsap-react/SKILL.md +42 -0
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +42 -0
- package/.agent/skills/gsap-timeline/SKILL.md +42 -0
- package/.agent/skills/gsap-utils/SKILL.md +42 -0
- package/.agent/skills/i18n-localization/SKILL.md +42 -0
- package/.agent/skills/intelligent-routing/SKILL.md +42 -0
- package/.agent/skills/knowledge-graph/SKILL.md +42 -0
- package/.agent/skills/lint-and-validate/SKILL.md +42 -0
- package/.agent/skills/llm-engineering/SKILL.md +42 -0
- package/.agent/skills/local-first/SKILL.md +42 -0
- package/.agent/skills/mcp-builder/SKILL.md +42 -0
- package/.agent/skills/mobile-design/SKILL.md +42 -0
- package/.agent/skills/monorepo-management/SKILL.md +42 -0
- package/.agent/skills/motion-engineering/SKILL.md +42 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +42 -0
- package/.agent/skills/nodejs-best-practices/SKILL.md +42 -0
- package/.agent/skills/observability/SKILL.md +42 -0
- package/.agent/skills/parallel-agents/SKILL.md +42 -0
- package/.agent/skills/performance-profiling/SKILL.md +42 -0
- package/.agent/skills/plan-writing/SKILL.md +42 -0
- package/.agent/skills/platform-engineer/SKILL.md +42 -0
- package/.agent/skills/playwright-best-practices/SKILL.md +42 -0
- package/.agent/skills/powershell-windows/SKILL.md +42 -0
- package/.agent/skills/project-idioms/SKILL.md +42 -0
- package/.agent/skills/python-patterns/SKILL.md +42 -0
- package/.agent/skills/python-pro/SKILL.md +42 -0
- package/.agent/skills/react-specialist/SKILL.md +42 -0
- package/.agent/skills/readme-builder/SKILL.md +42 -0
- package/.agent/skills/realtime-patterns/SKILL.md +42 -0
- package/.agent/skills/red-team-tactics/SKILL.md +42 -0
- package/.agent/skills/rust-pro/SKILL.md +42 -0
- package/.agent/skills/seo-fundamentals/SKILL.md +42 -0
- package/.agent/skills/server-management/SKILL.md +42 -0
- package/.agent/skills/shadcn-ui-expert/SKILL.md +42 -0
- package/.agent/skills/skill-creator/SKILL.md +42 -0
- package/.agent/skills/sql-pro/SKILL.md +42 -0
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +42 -0
- package/.agent/skills/swiftui-expert/SKILL.md +42 -0
- package/.agent/skills/systematic-debugging/SKILL.md +42 -0
- package/.agent/skills/tailwind-patterns/SKILL.md +42 -0
- package/.agent/skills/tdd-workflow/SKILL.md +42 -0
- package/.agent/skills/test-result-analyzer/SKILL.md +42 -0
- package/.agent/skills/testing-patterns/SKILL.md +42 -0
- package/.agent/skills/trend-researcher/SKILL.md +42 -0
- package/.agent/skills/typescript-advanced/SKILL.md +42 -0
- package/.agent/skills/ui-ux-pro-max/SKILL.md +42 -0
- package/.agent/skills/ui-ux-researcher/SKILL.md +42 -0
- package/.agent/skills/vue-expert/SKILL.md +42 -0
- package/.agent/skills/vulnerability-scanner/SKILL.md +42 -0
- package/.agent/skills/web-accessibility-auditor/SKILL.md +42 -0
- package/.agent/skills/web-design-guidelines/SKILL.md +42 -0
- package/.agent/skills/webapp-testing/SKILL.md +42 -0
- package/.agent/skills/whimsy-injector/SKILL.md +42 -0
- package/.agent/skills/workflow-optimizer/SKILL.md +42 -0
- package/.agent/workflows/marathon.md +247 -0
- package/.agent/workflows/super-prompt.md +27 -0
- package/bin/tribunal-kit.js +47 -1
- package/package.json +3 -2
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Long-running agent harness for multi-session projects. Decomposes specs into atomic features tracked in JSON, ensures clean handoffs between sessions, and provides structured progress tracking. Based on Anthropic's long-running agent patterns.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /marathon — Long-Running Agent Harness
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## When to Use /marathon
|
|
12
|
+
|
|
13
|
+
|Use `/marathon` when...|Use something else when...|
|
|
14
|
+
|:---|:---|
|
|
15
|
+
|A project requires multiple sessions to complete|Quick one-shot task → `/generate`|
|
|
16
|
+
|You need structured progress tracking across context windows|Single feature addition → `/enhance`|
|
|
17
|
+
|Building a complex app from a high-level spec|Planning without execution → `/plan`|
|
|
18
|
+
|Previous agent sessions lost context or declared victory too early|Brainstorming options → `/brainstorm`|
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Sub-Commands
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
/marathon init [spec] Start a new marathon from a specification
|
|
26
|
+
/marathon continue Resume work: read progress, pick next feature, implement
|
|
27
|
+
/marathon status Show progress dashboard
|
|
28
|
+
/marathon reset Archive current marathon and start fresh
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Phase 1: Initialize (First Session Only)
|
|
34
|
+
|
|
35
|
+
**Trigger:** `/marathon init "Build X"`
|
|
36
|
+
|
|
37
|
+
This phase runs the **Initializer Agent** pattern — a specialized first session that sets up the foundation for all future sessions.
|
|
38
|
+
|
|
39
|
+
### Steps
|
|
40
|
+
|
|
41
|
+
1. **Parse the specification** — Read the user's spec carefully
|
|
42
|
+
2. **Decompose into atomic features** — Generate 30–200 features depending on project complexity
|
|
43
|
+
- Each feature must be **independently testable**
|
|
44
|
+
- Each must have clear **done criteria** (verification steps)
|
|
45
|
+
- Group by category: `core`, `auth`, `ui`, `data`, `integration`, `polish`
|
|
46
|
+
- All features start with `passes: false`
|
|
47
|
+
3. **Create the marathon state:**
|
|
48
|
+
```bash
|
|
49
|
+
node .agent/scripts/marathon_harness.js init "Build X"
|
|
50
|
+
# Then add features one by one:
|
|
51
|
+
node .agent/scripts/marathon_harness.js add-feature "core" "User can open a new chat" "Navigate to main page" "Click New Chat" "Verify welcome state"
|
|
52
|
+
node .agent/scripts/marathon_harness.js add-feature "core" "User can type and send a message" "Open chat" "Type in input" "Press Enter" "See message appear"
|
|
53
|
+
# ... repeat for all features
|
|
54
|
+
```
|
|
55
|
+
4. **Scaffold the project** — Create initial files, install dependencies
|
|
56
|
+
5. **Create init.sh** — Write a bootstrap script that starts the dev environment
|
|
57
|
+
6. **Initial git commit:** `git commit -m "marathon: initial scaffold for [spec]"`
|
|
58
|
+
7. **Human Gate:** User reviews the feature list before proceeding
|
|
59
|
+
|
|
60
|
+
### Feature JSON Format
|
|
61
|
+
|
|
62
|
+
Features are stored in `.agent/history/marathon/feature_list.json` as structured JSON. JSON is used instead of Markdown because agents are less likely to inappropriately modify JSON structures.
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"id": 1,
|
|
67
|
+
"category": "core",
|
|
68
|
+
"description": "User can open a new chat and see a welcome screen",
|
|
69
|
+
"steps": [
|
|
70
|
+
"Navigate to main page",
|
|
71
|
+
"Click 'New Chat' button",
|
|
72
|
+
"Verify welcome state renders"
|
|
73
|
+
],
|
|
74
|
+
"passes": false,
|
|
75
|
+
"sessionCompleted": null
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
> [!CAUTION]
|
|
80
|
+
> **Feature descriptions are immutable.** After initialization, agents may ONLY change the `passes` field and `sessionCompleted` timestamp. It is unacceptable to remove, edit, or reorder features — this could lead to missing or buggy functionality.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Phase 2: Get Bearings (Every Session Start)
|
|
85
|
+
|
|
86
|
+
**Trigger:** `/marathon continue`
|
|
87
|
+
|
|
88
|
+
Every new session starts by orienting the agent. This is the **Coding Agent** pattern — understanding state before making changes.
|
|
89
|
+
|
|
90
|
+
### Steps
|
|
91
|
+
|
|
92
|
+
1. **Read marathon state:**
|
|
93
|
+
```bash
|
|
94
|
+
node .agent/scripts/marathon_harness.js session-start
|
|
95
|
+
```
|
|
96
|
+
This automatically:
|
|
97
|
+
- Reads `progress.json` and shows what was done in previous sessions
|
|
98
|
+
- Reads `git log --oneline -20` for recent commits
|
|
99
|
+
- Shows the next unfinished feature
|
|
100
|
+
- Records the session start time
|
|
101
|
+
|
|
102
|
+
2. **Start the dev environment:**
|
|
103
|
+
```bash
|
|
104
|
+
node .agent/scripts/auto_preview.js start
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
3. **Smoke test basic functionality:**
|
|
108
|
+
- If a web app: navigate to the main page, verify it loads without errors
|
|
109
|
+
- If a CLI tool: run the help command, verify it outputs correctly
|
|
110
|
+
- If an API: hit the health check endpoint
|
|
111
|
+
- If browser MCP tools are available (Puppeteer), use them for visual verification
|
|
112
|
+
|
|
113
|
+
4. **If smoke test fails:** Fix the broken state FIRST before implementing new features. The codebase must be clean before new work begins.
|
|
114
|
+
|
|
115
|
+
5. **Announce bearings:**
|
|
116
|
+
```
|
|
117
|
+
Session N. Progress: 12/47 features (25%).
|
|
118
|
+
Working on: Feature #13 [ui] — "User can toggle dark mode"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Phase 3: Implement (One Feature Per Cycle)
|
|
124
|
+
|
|
125
|
+
Work on exactly **one feature at a time**. This incremental approach prevents the common failure mode of trying to do too much at once.
|
|
126
|
+
|
|
127
|
+
### Steps
|
|
128
|
+
|
|
129
|
+
1. **Impact analysis** — Identify files that will be affected (per `/enhance` workflow)
|
|
130
|
+
2. **Implement the feature** — Write code, following Tribunal code quality standards
|
|
131
|
+
3. **Self-verify the feature:**
|
|
132
|
+
- Run the verification steps listed in the feature's `steps` array
|
|
133
|
+
- Test as a human user would (browser for web, CLI for CLI)
|
|
134
|
+
- Run existing tests to ensure no regressions: `npm test` or equivalent
|
|
135
|
+
4. **Mark as passing:**
|
|
136
|
+
```bash
|
|
137
|
+
node .agent/scripts/marathon_harness.js mark <id> pass
|
|
138
|
+
```
|
|
139
|
+
5. **Git commit** with a descriptive message:
|
|
140
|
+
```bash
|
|
141
|
+
git commit -m "marathon: implement feature #13 — dark mode toggle"
|
|
142
|
+
```
|
|
143
|
+
6. **Check context budget:**
|
|
144
|
+
- If context allows → return to Phase 2, step 5 (pick next feature)
|
|
145
|
+
- If nearing context limit → proceed to Phase 4
|
|
146
|
+
|
|
147
|
+
### If a feature cannot be completed
|
|
148
|
+
|
|
149
|
+
If a feature is blocked or too complex for the current session:
|
|
150
|
+
1. Leave it as `passes: false`
|
|
151
|
+
2. Add a log note explaining why:
|
|
152
|
+
```bash
|
|
153
|
+
node .agent/scripts/marathon_harness.js log "Feature #13 blocked: requires OAuth integration not yet set up"
|
|
154
|
+
```
|
|
155
|
+
3. Move to the next feature or proceed to Phase 4
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Phase 4: Clean Exit (Session End)
|
|
160
|
+
|
|
161
|
+
Every session MUST leave the codebase in a clean, merge-ready state.
|
|
162
|
+
|
|
163
|
+
### Steps
|
|
164
|
+
|
|
165
|
+
1. **Verify clean state:**
|
|
166
|
+
- All code compiles without errors
|
|
167
|
+
- All existing tests pass
|
|
168
|
+
- No half-implemented features left in an intermediate state
|
|
169
|
+
- If something is half-done, either complete it or revert it
|
|
170
|
+
|
|
171
|
+
2. **Record session end:**
|
|
172
|
+
```bash
|
|
173
|
+
node .agent/scripts/marathon_harness.js session-end "Implemented dark mode, user settings page, and notification bell"
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
3. **Final git commit:**
|
|
177
|
+
```bash
|
|
178
|
+
git commit -m "marathon: session N complete, 15/47 features passing"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
4. **Display status dashboard** — The session-end command automatically shows progress
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Marathon Guards
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
❌ Never delete or edit feature descriptions — only change the passes status
|
|
189
|
+
❌ Never skip the smoke test at session start — broken code must be fixed first
|
|
190
|
+
❌ Never mark a feature as passing without testing it end-to-end
|
|
191
|
+
❌ Never work on more than one feature at a time
|
|
192
|
+
❌ Never leave the codebase in a broken state at session end
|
|
193
|
+
❌ Never declare the project "done" if any feature has passes: false
|
|
194
|
+
❌ Never try to one-shot the entire project — always work incrementally
|
|
195
|
+
❌ Never guess what happened in previous sessions — read progress.json and git log
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## State Files
|
|
201
|
+
|
|
202
|
+
All marathon state is stored in `.agent/history/marathon/` (preserved on `tk update`):
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
.agent/history/marathon/
|
|
206
|
+
├── feature_list.json ← Structured feature backlog (immutable descriptions)
|
|
207
|
+
├── progress.json ← Session log + progress notes
|
|
208
|
+
└── archive/ ← Previous marathons (after reset)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Script Reference
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# Initialize
|
|
217
|
+
node .agent/scripts/marathon_harness.js init "Build a task management app"
|
|
218
|
+
|
|
219
|
+
# Add features (during init phase)
|
|
220
|
+
node .agent/scripts/marathon_harness.js add-feature "core" "User can create a task" "Click add" "Type title" "Save"
|
|
221
|
+
|
|
222
|
+
# Session lifecycle
|
|
223
|
+
node .agent/scripts/marathon_harness.js session-start
|
|
224
|
+
node .agent/scripts/marathon_harness.js session-end "Completed auth and dashboard"
|
|
225
|
+
|
|
226
|
+
# During implementation
|
|
227
|
+
node .agent/scripts/marathon_harness.js next
|
|
228
|
+
node .agent/scripts/marathon_harness.js mark 5 pass
|
|
229
|
+
node .agent/scripts/marathon_harness.js log "Refactored auth to use JWT"
|
|
230
|
+
|
|
231
|
+
# Status
|
|
232
|
+
node .agent/scripts/marathon_harness.js status
|
|
233
|
+
|
|
234
|
+
# Archive and restart
|
|
235
|
+
node .agent/scripts/marathon_harness.js reset
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Usage Examples
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
/marathon init Build a full-stack clone of claude.ai with chat, settings, and themes
|
|
244
|
+
/marathon continue
|
|
245
|
+
/marathon status
|
|
246
|
+
/marathon reset
|
|
247
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# /super-prompt — Tokenless Prompt Compiler
|
|
2
|
+
|
|
3
|
+
Converts conversational, fluffy requests into hyper-dense YAML structures that LLMs process perfectly, reducing prompt tokens and drastically improving response accuracy. **Zero API tokens are used during compilation.**
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
Instead of typing your prompt into the AI chat directly, run the local compiler from your terminal:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
node .agent/scripts/prompt_compiler.js "Hey, could you please build a login page using React and tailwind for me?"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Expected Output
|
|
14
|
+
|
|
15
|
+
The script strips conversational fillers and outputs a dense YAML block to your terminal instantly:
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
---
|
|
19
|
+
action: build
|
|
20
|
+
target: login page using React and tailwind
|
|
21
|
+
stack: [react, tailwind]
|
|
22
|
+
---
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Next Step
|
|
26
|
+
|
|
27
|
+
Copy the YAML output and paste it into the AI chat. The LLM will use this structured format to generate a highly accurate response while saving massive amounts of context window tokens!
|
package/bin/tribunal-kit.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* tribunal-kit CLI (alias: tk)
|
|
4
4
|
*
|
|
@@ -743,6 +743,9 @@ async function runWithUpdateCheck(command, flags) {
|
|
|
743
743
|
case 'context':
|
|
744
744
|
cmdContext(flags);
|
|
745
745
|
break;
|
|
746
|
+
case 'marathon':
|
|
747
|
+
cmdMarathon(flags);
|
|
748
|
+
break;
|
|
746
749
|
case 'uninstall':
|
|
747
750
|
cmdUninstall(flags);
|
|
748
751
|
break;
|
|
@@ -956,6 +959,7 @@ function cmdHelp() {
|
|
|
956
959
|
log(cmd('graph', 'Build and visualize the architecture graph'));
|
|
957
960
|
log(cmd('mutate', 'Run the Mutation Engine to test test-suite reliability'));
|
|
958
961
|
log(cmd('context', 'Retrieve a highly-optimized Context Snapshot for a file'));
|
|
962
|
+
log(cmd('marathon', 'Long-running agent harness (init, status, next, mark)'));
|
|
959
963
|
log(cmd('hook', 'Install pre-push git hook for auto-learning'));
|
|
960
964
|
log(cmd('uninstall','Remove .agent/ folder from project'));
|
|
961
965
|
console.log();
|
|
@@ -994,12 +998,54 @@ function cmdHelp() {
|
|
|
994
998
|
log(ex('tk case overrule --id 1'));
|
|
995
999
|
log(ex('tk graph'));
|
|
996
1000
|
log(ex('tk mutate src/utils.js "npm test"'));
|
|
1001
|
+
log(ex('tk marathon init "Build a todo app"'));
|
|
1002
|
+
log(ex('tk marathon status'));
|
|
1003
|
+
log(ex('tk marathon next'));
|
|
1004
|
+
log(ex('tk marathon mark 5 pass'));
|
|
997
1005
|
log(ex('tk hook'));
|
|
998
1006
|
log(ex('tk uninstall'));
|
|
999
1007
|
console.log();
|
|
1000
1008
|
}
|
|
1001
1009
|
|
|
1002
1010
|
|
|
1011
|
+
function cmdMarathon(flags) {
|
|
1012
|
+
const targetDir = flags.path ? path.resolve(flags.path) : process.cwd();
|
|
1013
|
+
const agentDest = path.join(targetDir, '.agent');
|
|
1014
|
+
|
|
1015
|
+
if (!fs.existsSync(agentDest)) {
|
|
1016
|
+
err('.agent/ not found. Run: npx tribunal-kit init');
|
|
1017
|
+
process.exit(1);
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
const args = process.argv.slice(3);
|
|
1021
|
+
const argsStr = args.join(' ');
|
|
1022
|
+
if (args.length === 0 || args[0] === 'help' || args[0] === '--help' || args[0] === '-h') {
|
|
1023
|
+
banner();
|
|
1024
|
+
log(` ${c('cyan', '╔' + '═'.repeat(60) + '╗')}`);
|
|
1025
|
+
log(` ${c('cyan', '║')}${c('bold', c('white', ' Marathon — Long-Running Agent Harness '))}${c('cyan', '║')}`);
|
|
1026
|
+
log(` ${c('cyan', '╚' + '═'.repeat(60) + '╝')}`);
|
|
1027
|
+
console.log();
|
|
1028
|
+
log(` ${c('cyan', 'init'.padEnd(16))} ${c('gray', 'Start a new marathon (init "spec")')}`);
|
|
1029
|
+
log(` ${c('cyan', 'status'.padEnd(16))} ${c('gray', 'Show progress dashboard')}`);
|
|
1030
|
+
log(` ${c('cyan', 'next'.padEnd(16))} ${c('gray', 'Show next unfinished feature')}`);
|
|
1031
|
+
log(` ${c('cyan', 'mark'.padEnd(16))} ${c('gray', 'Mark feature pass/fail (mark <id> pass)')}`);
|
|
1032
|
+
log(` ${c('cyan', 'log'.padEnd(16))} ${c('gray', 'Add a progress note')}`);
|
|
1033
|
+
log(` ${c('cyan', 'session-start'.padEnd(16))} ${c('gray', 'Begin a new work session')}`);
|
|
1034
|
+
log(` ${c('cyan', 'session-end'.padEnd(16))} ${c('gray', 'End session with summary')}`);
|
|
1035
|
+
log(` ${c('cyan', 'add-feature'.padEnd(16))} ${c('gray', 'Add feature: "category" "desc" "step1" ...')}`);
|
|
1036
|
+
log(` ${c('cyan', 'reset'.padEnd(16))} ${c('gray', 'Archive and start fresh')}`);
|
|
1037
|
+
console.log();
|
|
1038
|
+
return;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
const marathonScript = path.join(agentDest, 'scripts', 'marathon_harness.js');
|
|
1042
|
+
try {
|
|
1043
|
+
execSync(`node "${marathonScript}" ${argsStr}`, { stdio: 'inherit', cwd: targetDir });
|
|
1044
|
+
} catch {
|
|
1045
|
+
process.exit(1);
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1003
1049
|
function cmdContext(flags) {
|
|
1004
1050
|
const targetDir = flags.path ? path.resolve(flags.path) : process.cwd();
|
|
1005
1051
|
const agentDest = path.join(targetDir, '.agent');
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tribunal-kit",
|
|
3
|
-
"version": "4.4.
|
|
4
|
-
"description": "Anti-Hallucination AI Agent Kit — 40 specialist agents,
|
|
3
|
+
"version": "4.4.3",
|
|
4
|
+
"description": "Anti-Hallucination AI Agent Kit — 40 specialist agents, 32 slash commands, 16 parallel Tribunal reviewers, Performance Swarm engine, Supreme Court case law pipeline, and long-running agent harness.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
7
7
|
"ai-agent",
|
|
8
|
+
"long-running-agents",
|
|
8
9
|
"agent",
|
|
9
10
|
"agents",
|
|
10
11
|
"multi-agent",
|