From shannon
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.
npx claudepluginhub krzemienski/shannon-framework --plugin shannonThis skill is limited to using the following tools:
**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.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
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.
Use this skill when:
DO NOT use when:
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 taskOptional:
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")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
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.
Example: Agent says "Making progress on auth system" instead of structured SITREP
COUNTER:
Rule: Format ALL status updates as SITREPs. No informal narratives.
Example: Agent says "Just finished the login form, now working on validation"
COUNTER:
Rule: Explicit status codes. Narratives are supplementary, not primary.
Example: Agent waits until task completion to report, coordinator has no visibility
COUNTER:
Rule: Report every 30 minutes OR when blocked. Not "when done".
Example: Agent assumes coordinator knows work is ready for handoff
COUNTER:
HANDOFF-{AGENT}-{TIMESTAMP}-{HASH} when readyRule: No handoff without authorization code. Seeing ≠ confirming.
Example: Agent reports blocker informally because "it's blocking everyone"
COUNTER:
Rule: Urgent = use SITREP format immediately. Structure enables speed.
Example: During production outage, agent thinks "CEO needs story, not formatted SITREP"
COUNTER:
Rule: High-stakes reporting needs MAXIMUM clarity. Use structure.
If you're tempted to:
STOP. You're rationalizing. Use SITREP format.
Check Trigger Type
Select Format
Determine Status Code
Calculate Progress
Identify Blockers
Format Message
Generate Authorization Code (if deliverable ready)
Save to Serena
Present to Coordinator
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}
═══════════════════════════════════════════════════════════
Use this format for quick updates (coordinator scanning multiple agents):
🎯 **{AGENT}** | {🟢🟡🔴} | {XX}% | ETA: {time}
Blockers: {NONE | description}
Criteria:
Example:
**STATUS**: 🟢 ON TRACK
**PROGRESS**: 65% complete
**CURRENT TASK**: Implementing user authentication API endpoints
**BLOCKERS**: NONE
**ETA TO COMPLETION**: 2 hours
Criteria:
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)
Criteria:
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 codes ensure secure, traceable handoffs between agents:
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 deliverableExample:
HANDOFF-frontend-dev-1699032450-a3f2c8b1
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}"
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
Rule: Report SITREP every 30 minutes during active work
Rationale:
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
IMMEDIATE SITREP Required (don't wait for 30-minute interval):
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
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)
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:
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
═══════════════════════════════════════════════════════════
🎯 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)
═══════════════════════════════════════════════════════════
═══════════════════════════════════════════════════════════
🎯 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.
═══════════════════════════════════════════════════════════
═══════════════════════════════════════════════════════════
🎯 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
═══════════════════════════════════════════════════════════
═══════════════════════════════════════════════════════════
🎯 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
═══════════════════════════════════════════════════════════
🎯 **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
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:
Rule: The more complex the situation, the MORE critical SITREP structure becomes.
Multiple Blockers: Use blocker priority levels
Multiple Agents: Use wave summary format
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
Rule: SITREP format is channel-independent. ANY medium gets structured reporting.
Channel Guidelines:
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]
Rule: ANY status request gets SITREP format (full or brief), even casual check-ins.
Informal requests that STILL get structure:
Format:
Friendly + Structure = "Going great! 🎯 **agent** | 🟢 | 70% | ETA: 1.5h"
Why: Consistency enables coordination. Casual tone doesn't mean unstructured data.
Rule: Keep SITREP structure, provide translation if needed for non-Shannon teams.
When handing off to external teams (QA, DevOps, clients):
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.
Rule: Report actual status, not aspirational status. Coordinator needs REALITY to plan effectively.
Behind Schedule:
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:
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.
Wrong:
**PROGRESS**: Making good progress
Right:
**PROGRESS**: 65% complete
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
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
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
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)
When WAVE_COORDINATOR orchestrates sub-agents, SITREP protocol enables:
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
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)
After implementing this skill, verify agent behavior: