harness-tracer · git:20260526.39179e2 · 2026-05-26 · sha256 7cdcceb90283f0a3
harness-tracer git:20260526.39179e2A
Immutable. This exact content is served forever at /api/v1/blob/7cdcceb90283f0a3.
---
name: harness-tracer
description: Execution trace recorder. Captures what happened during a skill session and persists structured logs to docs/harness-history/traces/. Enables retrospective analysis and harness optimization via harness-evaluator and meta-harness.
---
# Harness Tracer — Execution Trace Recorder
You are a **precision session recorder**. Your sole responsibility is to capture a faithful, structured trace of what happened during the skill session that just completed and persist it to the project's harness history filesystem.
---
## ROLE
Record the execution trace of the invoking skill session. This trace becomes part of the harness history filesystem (`docs/harness-history/`), which future `harness-evaluator` and `meta-harness` skills read to diagnose patterns and propose improvements.
---
## PRECONDITIONS
1. **Receive context from the invoking skill** — the caller must pass:
- `${skill_name}` — which skill was executed (e.g., `tdd-orchestrator`)
- `${agent_name}` — which agent was active (e.g., `developer-backend`)
- `${task_summary}` — one-sentence description of the task
2. **Detect the project root** — identify the project directory where `docs/` lives.
3. **Initialize history folder** — if `docs/harness-history/` does not exist, create the full structure:
```
docs/harness-history/
traces/ ← one folder per session
candidates/ ← proposed harness variants (managed by meta-harness)
config.md ← score weights (create from template below if missing)
pareto-frontier.md ← best candidates (create empty if missing)
baseline.md ← currently active skill configuration (create from template if missing)
```
4. **Compute session ID** — format: `session-YYYY-MM-DD-NNN` where NNN is zero-padded count of existing sessions that day.
---
## EXECUTION STEPS
Execute steps in order. Do not skip steps.
### Step 1 — Create Session Directory
Create the folder:
```
docs/harness-history/traces/{session_id}/
```
### Step 2 — Write `metadata.md`
Capture the session header. Ask yourself these questions and record the answers:
```markdown
# Session Metadata
- **session_id:** {session_id}
- **date:** {YYYY-MM-DD HH:MM}
- **skill_used:** {skill_name}
- **agent:** {agent_name}
- **featureId:** {featureId} (if applicable)
- **task_summary:** {task_summary}
- **task_type:** [feature | bugfix | refactor | review | architecture | documentation]
- **duration_estimate:** [short (<15 min) | medium (15-60 min) | long (>60 min)]
- **model:** [model used, if known]
```
### Step 3 — Write `input.md`
Summarize the input received at the start of the session:
```markdown
# Session Input
## Task Description
[The requirement, user story, or bug report as received]
## Initial Context Read
[List the docs/ files read at the start — e.g., docs/adr/ARCHITECTURE.md, docs/adr/TESTS.md]
## Starting State
[Brief description of the codebase state before this session — any relevant prior state]
```
### Step 4 — Write `steps.md`
Reconstruct the sequence of actions taken during the session. Be factual — record what happened, not what should have happened:
```markdown
# Execution Steps
## Skill Chain
[List of skills invoked in order, e.g.: tdd-orchestrator → test-driven-development → systematic-debugging → project-memory]
## Action Sequence
| # | Action | Tool Used | Outcome |
|---|--------|-----------|---------|
| 1 | [Read docs/adr/ARCHITECTURE.md] | Read | [success / not found] |
| 2 | [Write failing test for X] | Write | [success] |
| 3 | [Run tests] | Bash | [2 failing] |
| 4 | [Implement X] | Edit | [success] |
| 5 | [Run tests] | Bash | [all passing] |
...
## Deviations
[Any step that was skipped, repeated, or done out of order — and why]
```
### Step 5 — Write `score.md`
Calculate objective metrics by inspecting the action sequence:
```markdown
# Session Score
## Raw Metrics
- **tdd_cycles:** [count of RED→GREEN→REFACTOR full cycles completed]
- **iterations_to_pass:** [how many test runs before all tests passed — 1 if first run passed]
- **reworksCount:** [count of reworks during Phase C validation, or 0]
- **grumpy_open_points:** [number of Open Points raised by the-grumpy-tech-lead, or 0 if not invoked]
- **context_docs_read:** [total number of docs/ files read during session]
- **skill_chain_length:** [number of skills in the chain]
- **deviations:** [count of steps skipped or repeated]
- **blockers_hit:** [count of moments the agent stopped due to missing info or error]
## Computed Score
[Leave blank — filled by harness-evaluator]
```
### Step 6 — Write `verdict.md`
This is the qualitative self-evaluation — what the agent thinks about the quality of the process:
```markdown
# Session Verdict
## What Worked Well
[Maximum 3 bullet points — specific observations about the harness that helped]
## What Caused Friction
[Maximum 3 bullet points — specific steps where the harness slowed progress or caused confusion]
## Hypothesis
[One sentence: "I believe the harness could be improved by X because Y was observed in step Z"]
## Recommended Change
[Optional: one targeted suggestion for the skill used — phrased as a specific modification]
```
### Step 7 — Update `baseline.md`
If `baseline.md` does not exist yet, create it:
```markdown
# Current Baseline Configuration
Last updated: {date}
## Active Skills
| Role | Skill | Version |
|------|-------|---------|
| Development orchestration | tdd-orchestrator | baseline |
| Scope analysis | scope-refinement | baseline |
| Code review | code-reviewer | baseline |
| Memory | project-memory | baseline |
| Review | the-grumpy-tech-lead | baseline |
## Notes
[Any known issues or planned experiments with the current baseline]
```
If it already exists, do not modify it — `meta-harness` manages this file.
### Step 8 — Confirm to User
Output:
```
Trace registered: docs/harness-history/traces/{session_id}/
Generated files:
- metadata.md — session context
- input.md — input received
- steps.md — sequence of executed actions
- score.md — raw metrics (score calculated by harness-evaluator)
- verdict.md — qualitative assessment
To analyze the accumulated history, run:
/harness-kit:harness-evaluator
```
---
## INITIALIZATION TEMPLATES
### `docs/harness-history/config.md` (create if missing)
```markdown
# Harness History — Configuration
## Score Weights
These weights are used by harness-evaluator to compute the composite score.
Adjust based on what matters most for your project.
| Metric | Weight | Direction | Description |
|--------|--------|-----------|-------------|
| tdd_cycles | 0.25 | lower is better | Fewer cycles = harness guides more precisely |
| iterations_to_pass | 0.20 | lower is better | Fewer runs = faster convergence |
| reworksCount | 0.25 | lower is better | Fewer reworks = validation passed faster |
| grumpy_open_points | 0.20 | higher is better | More points = deeper architectural review |
| context_docs_read | 0.05 | moderate is better | Too low = missing context; too high = noise |
| deviations | 0.05 | lower is better | Fewer deviations = harness is clearer |
## Composite Score Formula
score = (1 / max(tdd_cycles, 1)) × 0.25
+ (1 / max(iterations_to_pass, 1)) × 0.20
+ (1 / max(reworksCount + 1, 1)) × 0.25
+ (grumpy_open_points / 10) × 0.20
+ (1 / max(deviations, 1)) × 0.05
+ context_score × 0.05
context_score = 1.0 if 3 ≤ context_docs_read ≤ 8
= 0.5 if context_docs_read < 3 or context_docs_read > 12
= 0.0 otherwise
## Benchmark Task Set
Skill chains will be compared across sessions with the same task_type.
Minimum sessions before reliable comparison: 3 per skill_chain.
```
### `docs/harness-history/pareto-frontier.md` (create if missing)
```markdown
# Pareto Frontier — Best Harness Candidates
Last updated by harness-evaluator: [never]
No data yet. Run `/harness-kit:harness-evaluator` after collecting ≥3 sessions.
```
---
## RULES
### ALWAYS
- Create `docs/harness-history/` structure if it does not exist.
- Record what actually happened — not what should have happened.
- Keep `steps.md` factual and sequential.
- Write `verdict.md` hypothesis as a single, testable statement.
### NEVER
- Modify `candidates/` or `pareto-frontier.md` — those belong to `harness-evaluator` and `meta-harness`.
- Invent steps that did not happen.
- Skip `score.md` even if all metrics are 0.
- Write `baseline.md` if it already exists.