| name | persisting-agent-outputs |
| description | Protocol for agents to write structured outputs that survive session resets and are findable by the orchestrator. |
| type | orchestrate |
| tier | core |
| trigger | save output, persist results, write report, store findings, agent output location |
Purpose
Agent outputs must be findable after session reset. The orchestrator reads these to resume work and make decisions. This skill defines the exact write protocol.
Output Location Protocol
All agent outputs go to:
.jonggrang/.output/features/{feature_id}/{phase}-{role}-output.json
Examples:
.jonggrang/.output/features/auth-feature-abc123/
07-lead-architecture-plan.json
08-developer-task-001.json
09-reviewer-design-check.json
11-reviewer-code-quality.json
12-test-lead-test-plan.json
13-tester-results.json
Output File Format
Every output file must include this header:
{
"jonggrang-output": true,
"feature_id": "auth-feature-abc123",
"phase": 8,
"role": "developer",
"task_id": "task-001",
"agent_id": "developer-auth-001",
"timestamp": "2024-01-01T00:00:00Z",
"status": "completed",
"output": {
}
}
Role-Specific Output Schemas
Lead (architecture plan):
{
"output": {
"work_type": "MEDIUM",
"tasks": [
{ "id": "task-001", "title": "...", "description": "...", "files": [...], "blocked_by": [] },
{ "id": "task-002", "title": "...", "description": "...", "files": [...], "blocked_by": ["task-001"] }
],
"tech_decisions": [...],
"risk_factors": [...]
}
}
Developer (implementation):
{
"output": {
"task_id": "task-001",
"files_modified": ["src/auth.ts"],
"files_created": ["src/auth.test.ts"],
"summary": "Implemented JWT auth with refresh tokens",
"notes": "Used bcrypt for password hashing"
}
}
Reviewer (review report):
{
"output": {
"approved": true,
"score": 8,
"violations": [],
"warnings": ["Consider adding rate limiting"],
"required_fixes": []
}
}
Tester (test results):
{
"output": {
"tests_passed": true,
"total": 24,
"passed": 24,
"failed": 0,
"coverage": 87.3,
"failed_tests": []
}
}
Discovery Protocol
When an agent needs to find a previous phase's output:
- Look in
.jonggrang/.output/features/{feature_id}/
- Find files matching
{phase}-{role}-*.json
- Parse and use
The orchestrator knows the feature_id from MANIFEST.yaml:
feature_id: auth-feature-abc123