| name | sitrep-reporting |
| description | Military-style SITuation REPort protocol for multi-agent coordination. Enforces structured status reporting with π’π‘π΄ codes, quantitative progress (0-100%), blockers, dependencies, ETAs, and authorization codes for secure handoffs. Prevents communication failures, lost context, and delayed blocker reporting. Use when: coordinating multiple agents, wave execution, reporting progress, requesting status updates, handing off deliverables. |
| skill-type | PROTOCOL |
| shannon-version | >=4.0.0 |
| mcp-requirements | [object Object] |
| required-sub-skills | |
| optional-sub-skills | wave-orchestration, context-preservation |
| allowed-tools | Read, Write, Serena |
SITREP Reporting Protocol
Overview
Purpose: Military-style situation reporting protocol that transforms vague, unstructured status updates into precise, actionable, auditable communication between agents. Prevents coordination failures, lost context, and delayed blocker reporting.
Origin: Adapted from Hummbl framework's sitrep-coordinator pattern. Enhanced with Shannon's anti-rationalization enforcement and quantitative metrics.
When to Use
Use this skill when:
- Coordinating multiple agents in wave execution
- Agent needs to report progress during long-running tasks
- Wave coordinator requests status update
- Agent encounters blocker requiring immediate escalation
- Agent completes deliverable and needs to hand off work
- Executive/stakeholder requests project status
DO NOT use when:
- Casual conversation without status request
- Single-agent work with no coordination needed
- User asks for explanation (not status)
Inputs
Required:
agent_name(string): Name of reporting agent (e.g., "frontend-dev")status(string): Status code - "ON TRACK" (π’), "AT RISK" (π‘), or "BLOCKED" (π΄)progress(integer): Progress percentage 0-100current_task(string): Description of current task
Optional:
completed_items(list): List of completed work itemsblockers(string): Blocker description or "NONE"dependencies(list): List of dependencies (waiting or ready)eta_hours(float): Estimated time to completion in hourshandoff_ready(boolean): Whether deliverable is ready for handoff (default: false)format(string): "full" or "brief" SITREP format (default: "full")
Outputs
Formatted SITREP message (string):
Full Format:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― SITREP: {AGENT_NAME}
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**STATUS**: π’ ON TRACK
**PROGRESS**: 75% complete
**CURRENT TASK**: {task_description}
**COMPLETED**:
- β
{item_1}
- β
{item_2}
**IN PROGRESS**:
- π {task_1} (60% complete)
**BLOCKERS**: NONE
**DEPENDENCIES**:
- β
Ready: {dependency}
**ETA TO COMPLETION**: {time_estimate}
**NEXT CHECKPOINT**: {checkpoint}
**HANDOFF**: {HANDOFF-CODE | N/A}
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Brief Format:
π― **{AGENT}** | π’ | 75% | ETA: 2h
Blockers: NONE
Anti-Rationalization (From Baseline Testing)
CRITICAL: Agents systematically rationalize skipping SITREP structure or providing informal updates. Below are the 5 most common rationalizations detected in baseline testing, with mandatory counters.
Rationalization 1: "User knows what I mean"
Example: Agent says "Making progress on auth system" instead of structured SITREP
COUNTER:
- β NEVER provide informal status updates
- β "User knows" fails when coordinating 3-25 agents
- β WAVE_COORDINATOR needs parseable status codes, not narratives
- β Use SITREP format EVERY TIME status is requested
- β Takes 15 seconds to format; saves hours of coordination failures
Rule: Format ALL status updates as SITREPs. No informal narratives.
Rationalization 2: "Status is obvious from my messages"
Example: Agent says "Just finished the login form, now working on validation"
COUNTER:
- β NEVER assume status is obvious without explicit codes
- β Narratives require interpretation; status codes don't
- β π’ ON TRACK vs π‘ AT RISK is objective, not inferrable
- β Cannot track metrics without structured progress %
- β Use STATUS: π’/π‘/π΄ and PROGRESS: XX% ALWAYS
Rule: Explicit status codes. Narratives are supplementary, not primary.
Rationalization 3: "I'll report when done"
Example: Agent waits until task completion to report, coordinator has no visibility
COUNTER:
- β NEVER wait until completion to report
- β 30-minute SITREP intervals are MANDATORY
- β Blockers reported immediately (trigger-based SITREP)
- β Coordinator needs real-time visibility, not retrospective updates
- β "When done" reporting hides at-risk tasks until too late
Rule: Report every 30 minutes OR when blocked. Not "when done".
Rationalization 4: "Coordinator can see my work"
Example: Agent assumes coordinator knows work is ready for handoff
COUNTER:
- β NEVER assume coordinator knows deliverable status
- β Without HANDOFF authorization code, work is NOT confirmed ready
- β "Can see my work" creates ambiguity in multi-agent coordination
- β Authorization codes provide audit trail and explicit confirmation
- β
Format:
HANDOFF-{AGENT}-{TIMESTAMP}-{HASH}when ready
Rule: No handoff without authorization code. Seeing β confirming.
Rationalization 5: "This is urgent, skip the format"
Example: Agent reports blocker informally because "it's blocking everyone"
COUNTER:
- β NEVER skip SITREP format for urgent issues
- β Urgent issues NEED structure MORE, not less
- β π΄ BLOCKED status ensures coordinator triages correctly
- β Structured format takes 15 seconds, even under pressure
- β Informal "urgent" reports create confusion and slow resolution
Rule: Urgent = use SITREP format immediately. Structure enables speed.
Rationalization 6: "Executives need narrative, not structure"
Example: During production outage, agent thinks "CEO needs story, not formatted SITREP"
COUNTER:
- β NEVER assume executives prefer narrative over structure
- β Executives need CLARITY, which structure provides instantly
- β π΄ BLOCKED is clearer than "we're having some issues"
- β "25% complete" is clearer than "making progress on diagnosis"
- β Structure enables instant understanding without reading comprehension
- β Under pressure, clarity is MORE critical, not less
Rule: High-stakes reporting needs MAXIMUM clarity. Use structure.
Detection Signal
If you're tempted to:
- Provide informal status ("making progress")
- Skip status codes ("seems to be going well")
- Wait to report ("I'll update when done")
- Assume visibility ("you can see my commits")
- Skip format for urgency ("this is blocking everyone!")
- Use narrative for executives ("CEO won't understand codes")
STOP. You're rationalizing. Use SITREP format.
Workflow
Phase 1: Determine SITREP Trigger
Check Trigger Type
- Action: Identify why SITREP is needed
- Triggers: 30-minute interval, blocker encountered, deliverable ready, coordinator request
- Output: Trigger type and urgency level
Select Format
- Action: Choose full or brief format
- Decision: Full for detailed reports, brief for coordinator scanning
- Output: Format selection
Phase 2: Collect Status Data
Determine Status Code
- Action: Evaluate current work state
- Tool: Check blockers, dependencies, timeline
- Output: π’ ON TRACK, π‘ AT RISK, or π΄ BLOCKED
Calculate Progress
- Action: Quantify completion percentage
- Validation: Must be 0-100, not qualitative
- Output: Integer percentage
Identify Blockers
- Action: List any blocking issues
- Validation: Explicit statement (NONE or description)
- Output: Blocker list
Phase 3: Generate SITREP Message
Format Message
- Action: Apply SITREP template
- Tool: Use full or brief format
- Output: Structured SITREP message
Generate Authorization Code (if deliverable ready)
- Action: Create HANDOFF code
- Tool: SHA-256 hash generation
- Output: HANDOFF-{AGENT}-{TIMESTAMP}-{HASH}
Phase 4: Save and Report
Save to Serena
- Action: Store SITREP in memory
- Tool: Serena write_memory()
- Output: SITREP saved with timestamp
Present to Coordinator
- Action: Report formatted SITREP
- Output: SITREP message delivered
SITREP Message Structure
Full SITREP Format
Use this format for detailed status reports (every 30 minutes, or when coordinator requests):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― SITREP: {AGENT_NAME}
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**STATUS**: {π’ ON TRACK | π‘ AT RISK | π΄ BLOCKED}
**PROGRESS**: {0-100}% complete
**CURRENT TASK**: {task_description}
**COMPLETED**:
- β
{completed_item_1}
- β
{completed_item_2}
**IN PROGRESS**:
- π {active_task_1} ({percentage}% complete)
- π {active_task_2} ({percentage}% complete)
**BLOCKERS**: {blocker_description | NONE}
**DEPENDENCIES**:
- βΈοΈ Waiting: {dependency} from {agent}
- β
Ready: {dependency} available
**ETA TO COMPLETION**: {time_estimate}
**NEXT CHECKPOINT**: {checkpoint_description}
**HANDOFF**: {HANDOFF-AGENT-TIMESTAMP-HASH | N/A}
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Brief SITREP Format
Use this format for quick updates (coordinator scanning multiple agents):
π― **{AGENT}** | {π’π‘π΄} | {XX}% | ETA: {time}
Blockers: {NONE | description}
Status Codes
π’ ON TRACK
Criteria:
- All tasks progressing as planned
- No blockers or dependencies waiting
- ETA unchanged or ahead of schedule
- Deliverables on pace for checkpoint
Example:
**STATUS**: π’ ON TRACK
**PROGRESS**: 65% complete
**CURRENT TASK**: Implementing user authentication API endpoints
**BLOCKERS**: NONE
**ETA TO COMPLETION**: 2 hours
π‘ AT RISK
Criteria:
- Minor blockers or delays present
- Dependencies not yet confirmed
- ETA slipping but recoverable
- May miss checkpoint without intervention
Example:
**STATUS**: π‘ AT RISK
**PROGRESS**: 40% complete
**CURRENT TASK**: Database schema migration
**BLOCKERS**: Schema validation taking longer than expected
**ETA TO COMPLETION**: 4 hours (originally 3 hours)
π΄ BLOCKED
Criteria:
- Cannot proceed without external action
- Critical dependency missing
- Blocker requires coordinator intervention
- Work stopped until resolved
TRIGGER: Report immediately (don't wait for 30-minute interval)
Example:
**STATUS**: π΄ BLOCKED
**PROGRESS**: 35% complete (paused)
**CURRENT TASK**: Frontend API integration
**BLOCKERS**: Backend API endpoints not available
**DEPENDENCIES**:
- βΈοΈ Waiting: API specification from backend-dev agent
**ETA TO COMPLETION**: Unknown until blocker resolved
Authorization Code Generation
Purpose
Authorization codes ensure secure, traceable handoffs between agents:
- Prevent lost work
- Enable audit trail
- Confirm receipt
- Track lineage
Code Format
HANDOFF-{AGENT_NAME}-{TIMESTAMP}-{HASH}
Components:
AGENT_NAME: Reporting agent (e.g., frontend-dev)TIMESTAMP: Unix timestamp or ISO 8601HASH: First 8 chars of SHA-256 hash of deliverable
Example:
HANDOFF-frontend-dev-1699032450-a3f2c8b1
Generation Algorithm
import hashlib
import time
def generate_handoff_code(agent_name: str, deliverable: str) -> str:
"""Generate SITREP authorization code"""
timestamp = int(time.time())
hash_input = f"{agent_name}-{timestamp}-{deliverable}"
hash_digest = hashlib.sha256(hash_input.encode()).hexdigest()[:8]
return f"HANDOFF-{agent_name}-{timestamp}-{hash_digest}"
Usage in SITREP
Only include HANDOFF code when deliverable is READY:
**HANDOFF**: HANDOFF-frontend-dev-1699032450-a3f2c8b1
Deliverable: User authentication components (Login, Register, ResetPassword)
Location: /src/components/auth/
Status: Tested, documented, ready for integration
When NOT ready:
**HANDOFF**: N/A
Timing and Frequency Rules
Regular Intervals
Rule: Report SITREP every 30 minutes during active work
Rationale:
- Coordinator needs real-time visibility
- 30 minutes allows course correction before issues escalate
- Too frequent (every 5 min) = overhead
- Too infrequent (every 2 hours) = lost visibility
Implementation:
T+0:00 - Start task, initial SITREP
T+0:30 - First interval SITREP
T+1:00 - Second interval SITREP
T+1:30 - Third interval SITREP
T+2:00 - Completion SITREP with HANDOFF code
Trigger-Based Reporting
IMMEDIATE SITREP Required (don't wait for 30-minute interval):
- Status Change: π’ β π‘ or π‘ β π΄
- Blocker Encountered: Any blocking issue
- Dependency Available: Waited-for dependency now ready
- Deliverable Ready: Work complete, ready for handoff
- Coordinator Request: Explicit SITREP request
Example:
π΄ IMMEDIATE SITREP (Blocker Encountered - T+0:42)
**STATUS**: π΄ BLOCKED
**PROGRESS**: 55% complete (paused)
**BLOCKER**: API authentication endpoint returning 500 errors
**TRIGGER**: Blocker encountered at T+0:42, reporting immediately
Silent Period Exception
Rule: If no work is being performed (waiting on dependency), silent period allowed with final SITREP before pause:
**STATUS**: π‘ AT RISK
**PROGRESS**: 30% complete (paused)
**DEPENDENCIES**:
- βΈοΈ Waiting: Database schema from backend-dev agent
**NEXT SITREP**: When dependency available or T+2:00 (whichever first)
Multi-Agent Coordination
Wave Coordinator Pattern
When WAVE_COORDINATOR manages multiple sub-agents:
Coordinator Request:
SITREP REQUEST to all Wave 2 agents:
- frontend-dev
- backend-dev
- database-dev
Format: Brief SITREP
Deadline: T+0:05
Agent Responses:
π― **frontend-dev** | π’ | 70% | ETA: 1h
Blockers: NONE
π― **backend-dev** | π‘ | 55% | ETA: 2h
Blockers: Performance optimization taking longer than expected
π― **database-dev** | π΄ | 40% | ETA: Unknown
Blockers: Migration script failing on production schema
Coordinator Analysis:
- frontend-dev: ON TRACK, proceed
- backend-dev: AT RISK, monitor next SITREP
- database-dev: BLOCKED, escalate immediately
Handoff Protocol
Sender Agent:
**HANDOFF**: HANDOFF-backend-dev-1699032450-7f8a2c19
Deliverable: REST API endpoints for user management
Files:
- /api/users/create.ts
- /api/users/update.ts
- /api/users/delete.ts
- /api/users/list.ts
Tests: 47 passing
Documentation: /docs/api/users.md
Status: Ready for frontend integration
Receiver Agent (Acknowledgment):
HANDOFF ACKNOWLEDGMENT
Received: HANDOFF-backend-dev-1699032450-7f8a2c19
Verified:
- β
All 4 endpoints present
- β
Tests passing
- β
Documentation complete
Status: Acknowledged, beginning integration
Examples
Example 1: On-Track Development
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― SITREP: frontend-dev
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**STATUS**: π’ ON TRACK
**PROGRESS**: 75% complete
**CURRENT TASK**: Implementing user profile component
**COMPLETED**:
- β
Login component with form validation
- β
Registration component with email verification
- β
Password reset flow
- β
Navigation routing
**IN PROGRESS**:
- π User profile component (60% complete)
- π Profile edit functionality (40% complete)
**BLOCKERS**: NONE
**DEPENDENCIES**:
- β
Ready: Backend user API (HANDOFF-backend-dev-1699030123-9a2f3c5e)
- β
Ready: Design system components
**ETA TO COMPLETION**: 1.5 hours
**NEXT CHECKPOINT**: User profile completion, ready for testing
**HANDOFF**: N/A (in progress)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Example 2: At-Risk Scenario
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― SITREP: database-dev
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**STATUS**: π‘ AT RISK
**PROGRESS**: 60% complete
**CURRENT TASK**: Production database migration
**COMPLETED**:
- β
Schema design and review
- β
Migration scripts written
- β
Staging environment testing
**IN PROGRESS**:
- π Production migration execution (60% complete)
- π Data validation checks (30% complete)
**BLOCKERS**: Migration running slower than expected due to data volume
**DEPENDENCIES**:
- β
Ready: Backup completed
- βΈοΈ Waiting: DBA review for performance optimization
**ETA TO COMPLETION**: 3 hours (originally 2 hours)
**NEXT CHECKPOINT**: Migration completion + validation
**HANDOFF**: N/A (at risk, may need coordinator intervention)
**NOTES**: Considering partitioning strategy to speed up remaining migration. Will report π΄ BLOCKED if performance doesn't improve in next 30 minutes.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Example 3: Blocked Scenario (Immediate Report)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― SITREP: backend-dev (IMMEDIATE - Blocker Encountered)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**STATUS**: π΄ BLOCKED
**PROGRESS**: 45% complete (PAUSED)
**CURRENT TASK**: Payment processing integration
**COMPLETED**:
- β
Payment gateway research
- β
API credential setup
- β
Test environment configuration
**IN PROGRESS**:
- π Payment endpoint implementation (PAUSED at 45%)
**BLOCKERS**:
Production API keys not available. Sandbox keys are working but cannot proceed to production integration without credentials. Payment gateway support team response time: 24-48 hours.
**DEPENDENCIES**:
- π΄ BLOCKED: Production API keys from DevOps team
- β
Ready: Test environment
**ETA TO COMPLETION**: Unknown until blocker resolved
**NEXT CHECKPOINT**: Cannot proceed to next checkpoint
**HANDOFF**: N/A (blocked)
**COORDINATOR ACTION NEEDED**:
1. Escalate to DevOps lead for priority API key provisioning
2. OR: Switch to alternative payment gateway with available keys
3. OR: Proceed with mock integration, replace later (NOT RECOMMENDED)
**TRIGGER**: Blocker encountered at T+1:15, reporting immediately per protocol
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Example 4: Handoff Ready
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― SITREP: frontend-dev
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
**STATUS**: π’ ON TRACK (DELIVERABLE READY)
**PROGRESS**: 100% complete
**CURRENT TASK**: User authentication components (COMPLETED)
**COMPLETED**:
- β
Login component with form validation
- β
Registration component with email verification
- β
Password reset flow
- β
Session management
- β
Protected route handling
- β
Component unit tests (28 passing)
- β
Integration tests (12 passing)
- β
Documentation
**IN PROGRESS**: None
**BLOCKERS**: NONE
**DEPENDENCIES**: None required
**ETA TO COMPLETION**: COMPLETE
**NEXT CHECKPOINT**: Integration testing with backend
**HANDOFF**: HANDOFF-frontend-dev-1699034567-b8c4f2a9
**DELIVERABLE DETAILS**:
- **Location**: /src/components/auth/
- **Files**: Login.tsx, Register.tsx, PasswordReset.tsx, AuthContext.tsx
- **Tests**: /src/components/auth/__tests__/ (40 tests passing)
- **Documentation**: /docs/components/authentication.md
- **Status**: Code reviewed, tested, documented
- **Ready For**: Backend integration, E2E testing
**INTEGRATION NOTES**:
- Uses backend API endpoints: /api/auth/login, /api/auth/register, /api/auth/reset
- JWT tokens stored in httpOnly cookies
- Session refresh handled automatically
- Error handling follows design system patterns
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Example 5: Brief SITREP for Coordinator Scan
π― **frontend-dev** | π’ | 85% | ETA: 45min
Blockers: NONE
π― **backend-dev** | π’ | 90% | ETA: 30min
Blockers: NONE
π― **database-dev** | π‘ | 70% | ETA: 1.5h
Blockers: Performance optimization needed
π― **test-dev** | π’ | 60% | ETA: 2h
Blockers: NONE
**Wave Status**: 4/4 agents reporting, 3 on track, 1 at risk
**Coordinator Decision**: Continue wave, monitor database-dev
Success Criteria
A SITREP is compliant when it includes:
β Status Code: One of π’π‘π΄ β Progress Percentage: 0-100% β Current Task: Specific task description β Completed Items: List of finished work β Blockers: Explicit statement (NONE or description) β ETA: Time estimate to completion β Next Checkpoint: Description of next milestone β Handoff Code: When deliverable ready (or N/A)
Validation:
def validate_sitrep(sitrep):
assert sitrep["status"] in ["ON TRACK", "AT RISK", "BLOCKED"]
assert 0 <= sitrep["progress"] <= 100
assert "blockers" in sitrep
assert sitrep["eta_hours"] > 0 or sitrep["status"] == "BLOCKED"
if sitrep.get("handoff_ready"):
assert sitrep["handoff_code"].startswith("HANDOFF-")
Failure Modes to Avoid:
- β Informal narrative without structure
- β Missing status code
- β Qualitative progress ("almost done")
- β No ETA or vague ETA ("soon")
- β Unreported blockers
- β Handoff without authorization code
Advanced Situations (From Pressure Testing)
Complex Situations Need MORE Structure
Rule: The more complex the situation, the MORE critical SITREP structure becomes.
Multiple Blockers: Use blocker priority levels
- CRITICAL: Blocks entire wave or system
- HIGH: Blocks dependent agents
- MEDIUM: Delays but doesn't block
- LOW: Can be deferred
Multiple Agents: Use wave summary format
- List each agent with status code
- Prioritize by critical path
- Identify blockers first
- Group by status (π΄ β π‘ β π’)
Example (3 simultaneous blockers):
**BLOCKERS** (3 active):
**BLOCKER 1** - Frontend Integration (Priority: CRITICAL)
- Agent: frontend-agent | Status: π΄ BLOCKED at 85%
- Issue: API integration broken after deployment
- Action: Escalated to backend-agent
**BLOCKER 2** - Database Migration (Priority: HIGH)
- Agent: backend-agent | Status: π΄ BLOCKED at 70%
- Issue: Production migration failing
- Action: Escalated to DBA team
**BLOCKER 3** - E2E Tests (Priority: MEDIUM)
- Agent: testing-agent | Status: π‘ AT RISK at 40%
- Issue: Test timeouts, investigating infrastructure
Communication Channel Independence
Rule: SITREP format is channel-independent. ANY medium gets structured reporting.
Channel Guidelines:
- Email: Use full SITREP format
- Slack/Chat: Use brief SITREP format
- Project Tracker: Use full SITREP format
- Verbal/Voice: "Status is π’ ON TRACK, 75% complete, ETA 1.5 hours, no blockers"
- Any Channel: Always include status code, progress, blockers, ETA
Why: Structured reporting ensures clarity regardless of medium. You can be FRIENDLY and STRUCTURED simultaneously.
Example (Slack):
[Informal Slack message - Still uses structure]
π― **backend-agent** | π’ | 75% | ETA: 1.5h
Blockers: NONE
Going great! Working on password reset endpoint.
Completed: Login, register, JWT refresh
Full SITREP in tracker: [link]
Informal Requests Still Get Structured Responses
Rule: ANY status request gets SITREP format (full or brief), even casual check-ins.
Informal requests that STILL get structure:
- "How's it going?" β Brief SITREP
- "Quick check-in?" β Brief SITREP
- "Everything okay?" β Brief SITREP
- "Status?" β Brief SITREP
- "Just checking in..." β Brief SITREP
Format:
Friendly + Structure = "Going great! π― **agent** | π’ | 70% | ETA: 1.5h"
Why: Consistency enables coordination. Casual tone doesn't mean unstructured data.
External Team Handoffs
Rule: Keep SITREP structure, provide translation if needed for non-Shannon teams.
When handing off to external teams (QA, DevOps, clients):
- Use full SITREP format (maintains YOUR audit trail)
- Include authorization code (provides traceability)
- Add "FOR EXTERNAL TEAM" section with:
- Status code translation
- Authorization code explanation
- Next steps in their workflow
- Contact information
Example:
**HANDOFF**: HANDOFF-frontend-agent-1699034567-b8c4f2a9
**FOR EXTERNAL QA TEAM**:
This deliverable is ready for quality assurance testing.
**Status Codes Translation**:
- π’ ON TRACK = Ready for testing
- π‘ AT RISK = Issues found, in rework
- π΄ BLOCKED = Cannot test until dependency available
**Authorization Code** (HANDOFF-frontend-agent-1699034567-b8c4f2a9):
This code confirms work is 100% complete and ready. Use it to track handoff in your system.
**Next Steps for QA**:
1. Review deliverable in /src/components/auth/
2. Run test suite: npm test
3. Execute manual testing (see /docs/qa-scenarios.md)
4. Report findings using your standard QA format
Why: Your SITREP is YOUR record. Provide context for them without abandoning structure.
Velocity Honesty
Rule: Report actual status, not aspirational status. Coordinator needs REALITY to plan effectively.
Behind Schedule:
- β Don't report π’ hoping to catch up
- β Report π‘ AT RISK with honest revised ETA
- β Explain reason (complexity underestimated, unexpected blocker, etc.)
- β Provide velocity data (expected vs actual progress rate)
Velocity Analysis Template:
**ETA TO COMPLETION**: 2 hours (originally 2 hours, now T+3:00)
**ORIGINAL ESTIMATE**: 2 hours
**ACTUAL TIME SO FAR**: 3 hours
**REVISED ETA**: 2 additional hours (5 hours total)
**VELOCITY ANALYSIS**:
- Estimated: 2 hours total
- Actual: 60% complete at T+3:00
- Rate: 20% per hour (expected 50% per hour)
- Reason: Complexity underestimated by ~2.5x
Why:
- Hiding delays prevents proactive intervention
- Honest π‘ enables resource reallocation
- "I'll catch up" often doesn't happen
- Transparent reporting builds trust
- Coordinator can plan ONLY with accurate data
Example (Behind schedule):
**STATUS**: π‘ AT RISK
**PROGRESS**: 60% complete
**NOTES**: I underestimated complexity. Reporting π‘ AT RISK honestly
so coordinator can plan. Working to complete ASAP, but being transparent
about revised timeline.
Common Pitfalls
Pitfall 1: "Progress" Without Metrics
Wrong:
**PROGRESS**: Making good progress
Right:
**PROGRESS**: 65% complete
Pitfall 2: Hidden Blockers
Wrong:
**BLOCKERS**: NONE
(but agent is actually waiting on dependency)
Right:
**BLOCKERS**: Waiting on API specification from backend team
**DEPENDENCIES**:
- βΈοΈ Waiting: API spec from backend-dev agent
Pitfall 3: Informal Handoff
Wrong:
**HANDOFF**: Yeah, the API is ready for you to use
Right:
**HANDOFF**: HANDOFF-backend-dev-1699034567-c9a2f4b8
Deliverable: REST API v1.0
Status: Tested, documented, ready
Pitfall 4: Late Blocker Reporting
Wrong:
T+0:00 - Start task, STATUS: π’
T+0:30 - (blocker encountered, but don't report yet)
T+1:00 - Report STATUS: π΄ (30 minutes too late)
Right:
T+0:00 - Start task, STATUS: π’
T+0:35 - IMMEDIATE SITREP: STATUS: π΄ BLOCKED
T+1:00 - Regular SITREP: STATUS: still π΄, update on resolution
Pitfall 5: Assuming Visibility
Wrong:
(Agent completes work, commits to git, assumes coordinator knows)
Right:
**STATUS**: π’ ON TRACK (DELIVERABLE READY)
**HANDOFF**: HANDOFF-frontend-dev-1699034567-b8c4f2a9
(Explicit authorization code confirms readiness)
Integration with Shannon
With wave-orchestration
When WAVE_COORDINATOR orchestrates sub-agents, SITREP protocol enables:
- Real-time wave progress tracking
- Early blocker detection (π΄ status)
- Velocity calculations (progress over time)
- Checkpoint coordination (HANDOFF codes)
With context-preservation
Save SITREPs as part of checkpoint for cross-session audit trail:
shannon/waves/wave-2/sitreps/
βββ frontend-dev-sitrep-1699034567.md
βββ backend-dev-sitrep-1699034890.md
βββ database-dev-sitrep-1699035123.md
With functional-testing
Use SITREP structure to report test execution progress:
**STATUS**: π’ ON TRACK
**PROGRESS**: 80% complete
**CURRENT TASK**: Running E2E test suite
**COMPLETED**:
- β
Unit tests (127 passing)
- β
Integration tests (45 passing)
**IN PROGRESS**:
- π E2E tests (12/15 passing)
Testing This Skill
Compliance Testing
After implementing this skill, verify agent behavior:
- Request informal status β Agent MUST use SITREP format
- Request status without codes β Agent MUST include π’π‘π΄
- Introduce blocker β Agent MUST report immediately (trigger-based)
- Complete deliverable β Agent MUST include HANDOFF authorization code
- Wait 35 minutes β Agent MUST have reported at 30-minute mark
Expected Compliance
- β 100% of status updates use SITREP structure
- β 100% include status code and progress %
- β Blockers reported within 2 minutes (trigger-based)
- β Authorization codes generated for all handoffs
- β 30-minute intervals maintained during active work
Failure Scenarios (Should Not Occur)
- β Informal "making progress" updates
- β Missing status codes
- β Blockers reported 30+ minutes after occurring
- β Handoffs without authorization codes
- β Skipping format for "urgent" issues
References
- Origin: Hummbl framework sitrep-coordinator pattern
- Architecture: Shannon V4 Architecture Design Doc, Section 8
- Wave Coordination: wave-orchestration skill
- Context Preservation: context-preservation skill
Version History
- v4.0.0: Initial SITREP protocol implementation
- Full + brief SITREP formats
- Status codes (π’π‘π΄)
- Authorization code generation
- 30-minute interval + trigger-based reporting
- Anti-rationalization enforcement from baseline testing