Source profileQuality 86/100Review permissions

eltmon/overdeck/sync-sources/skills/pan-oversee/SKILL.md

pan-oversee

Test the Overdeck framework by supervising an agent through the full lifecycle, identifying and filing every bug encountered

Source repository stars
14
Declared platforms
0
Static risk flags
2
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

Test the Overdeck framework by supervising an agent through the full lifecycle, identifying and filing every bug encountered

Best for

  • Watching for bugs at every stage — dashboard rendering, agent spawning, workspace creation, xBRIEF tasks lifecycle, specialist handoffs, status transitions, terminal output, API responses
  • Documenting everything — no bug is too small. If something flickers, logs a warning, shows stale data, or doesn't match expected state, that's a finding
  • Fixing infrastructure bugs when they block progress, then continuing the test

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/eltmon/overdeck --skill "sync-sources/skills/pan-oversee"
Safe inspection promptEditorial

Inspect the Agent Skill "pan-oversee" from https://github.com/eltmon/overdeck/blob/b6d7106f7044de1a243a38b3f2d43b5bbe9b0aaf/sync-sources/skills/pan-oversee/SKILL.md at commit b6d7106f7044de1a243a38b3f2d43b5bbe9b0aaf. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Usage

    The argument is an issue ID (e.g. PAN-129). The skill handles the rest.

    The argument is an issue ID (e.g. PAN-129). The skill handles the rest.
  2. 02

    Phase Detection (CRITICAL — Always Run First)

    Before doing anything, detect what phase the issue is currently in. Do NOT assume the issue is at the beginning. Run all checks and jump to the correct phase.

    Before doing anything, detect what phase the issue is currently in. Do NOT assume the issue is at the beginning. Run all checks and jump to the correct phase.bash ISSUEID="PAN-{ID}" ISSUELOWER=$(echo "$ISSUEID" | tr '[:upper:]' '[:lower:]')echo "=== Phase Detection for $ISSUEID ==="
  3. 03

    6. Review/test/merge status?

    REVIEWSTATUS=$(curl -s http://localhost:3011/api/review/$ISSUEID/status 2/dev/null) echo "Review status: $REVIEWSTATUS"

    REVIEWSTATUS=$(curl -s http://localhost:3011/api/review/$ISSUEID/status 2/dev/null) echo "Review status: $REVIEWSTATUS"
  4. 04

    Phase Decision Matrix

    Based on the checks above, determine the current phase. Treat REVIEWSTATUS and other live SQLite-backed API status as authoritative; use the branch-portable xBRIEF plan.metadata.pipeline mirror as a corroborating signal when API status is missing, stale, or ambiguous. If the mir…

    Based on the checks above, determine the current phase. Treat REVIEWSTATUS and other live SQLite-backed API status as authoritative; use the branch-portable xBRIEF plan.metadata.pipeline mirror as a corroborating signal…Print which phase you're entering and why, e.g.: "Issue PAN-129 is in Phase 4 (review pending) — reviewStatus is 'reviewing', skipping to monitor review agent."
  5. 05

    Supervision Workflow

    Only needed if dashboard isn't running or Cloister isn't active.

    Only needed if dashboard isn't running or Cloister isn't active.

Permission review

Static risk signals and limitations

Network access

medium · line 51

The documentation includes network, browsing, or remote request actions.

DASHBOARD=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:3011/api/health 2>/dev/null)

Network access

medium · line 74

The documentation includes network, browsing, or remote request actions.

REVIEW_STATUS=$(curl -s http://localhost:3011/api/review/$ISSUE_ID/status 2>/dev/null)

Sends data out

high · line 133

The documentation includes sending, uploading, or posting data to a remote service.

curl -s -X POST http://localhost:3011/api/cloister/start

Sends data out

high · line 145

The documentation includes sending, uploading, or posting data to a remote service.

curl -s -X POST http://localhost:3011/api/agents \

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score86/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars14SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
eltmon/overdeck
Skill path
sync-sources/skills/pan-oversee/SKILL.md
Commit
b6d7106f7044de1a243a38b3f2d43b5bbe9b0aaf
License
MIT
Collected
2026-08-04
Default branch
main
View the original SKILL.md

Pan Oversee — Overdeck Framework Testing

Purpose

This skill exists to test the Overdeck framework itself. The issue being overseen is a test payload — the real goal is exercising the full agent lifecycle pipeline and identifying every bug, glitch, and rough edge along the way.

Supervise an agent working on an issue through the entire lifecycle: spawn/resume → work → completion → review → feedback loop → test → merge-ready

This is NOT passive monitoring. You are actively:

  • Watching for bugs at every stage — dashboard rendering, agent spawning, workspace creation, xBRIEF tasks lifecycle, specialist handoffs, status transitions, terminal output, API responses
  • Documenting everything — no bug is too small. If something flickers, logs a warning, shows stale data, or doesn't match expected state, that's a finding
  • Fixing infrastructure bugs when they block progress, then continuing the test
  • Filing or updating GitHub issues (PAN-XXX) for every bug found

Bug Tracking During Oversight

Maintain a running bug log throughout the session. For each finding:

  1. Note it immediately — don't wait until the end. Capture the symptom, what you expected, and what actually happened.
  2. Check for existing issuesgh issue list --search "keyword" before filing duplicates
  3. File new issues or update existing ones — include reproduction context from this oversight run
  4. Categorize severity:
    • Blocker — stops the pipeline, had to fix inline to continue
    • Bug — incorrect behavior but pipeline continued
    • Cosmetic — dashboard display issue, misleading status, stale data
    • Observation — not clearly a bug but worth investigating

At the end of the oversight session, report a summary to the user of all findings: what was filed, what was updated, what was fixed inline, and what needs follow-up.

Usage

/pan-oversee PAN-129

The argument is an issue ID (e.g. PAN-129). The skill handles the rest.

Phase Detection (CRITICAL — Always Run First)

Before doing anything, detect what phase the issue is currently in. Do NOT assume the issue is at the beginning. Run all checks and jump to the correct phase.

ISSUE_ID="PAN-{ID}"
ISSUE_LOWER=$(echo "$ISSUE_ID" | tr '[:upper:]' '[:lower:]')

echo "=== Phase Detection for $ISSUE_ID ==="

# 1. Dashboard running?
DASHBOARD=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:3011/api/health 2>/dev/null)
echo "Dashboard: $DASHBOARD"

# 2. Workspace exists?
WS_PATH=""
for dir in ~/.overdeck/workspaces/feature-$ISSUE_LOWER ~/Projects/*/workspaces/feature-$ISSUE_LOWER; do
  if [ -d "$dir" ]; then WS_PATH="$dir"; break; fi
done
echo "Workspace: ${WS_PATH:-NONE}"

# 3. Agent state?
AGENT_STATE=$(cat ~/.overdeck/agents/agent-$ISSUE_LOWER/state.json 2>/dev/null)
echo "Agent state: ${AGENT_STATE:-NONE}"

# 4. Tmux session?
TMUX_SESSION=$(tmux -L overdeck list-sessions 2>/dev/null | grep -i "$ISSUE_LOWER" | head -1)
echo "Tmux: ${TMUX_SESSION:-NONE}"

# 5. Completion marker?
COMPLETED=$(ls ~/.overdeck/agents/agent-$ISSUE_LOWER/completed 2>/dev/null)
echo "Completed: ${COMPLETED:-NO}"

# 6. Review/test/merge status?
REVIEW_STATUS=$(curl -s http://localhost:3011/api/review/$ISSUE_ID/status 2>/dev/null)
echo "Review status: $REVIEW_STATUS"

# 6b. Branch-portable xBRIEF pipeline mirror (corroborating, not authoritative)
PIPELINE_MIRROR=""
if [ -n "$WS_PATH" ] && [ -f "$WS_PATH/.pan/spec.vbrief.json" ]; then
  PIPELINE_MIRROR=$(jq -c '.plan.metadata.pipeline // empty' "$WS_PATH/.pan/spec.vbrief.json" 2>/dev/null)
fi
echo "xBRIEF pipeline mirror: ${PIPELINE_MIRROR:-NONE}"

# 7. Specialist activity?
SPECIALISTS=$(curl -s http://localhost:3011/api/specialists 2>/dev/null)
echo "Specialists: $SPECIALISTS"

Phase Decision Matrix

Based on the checks above, determine the current phase. Treat REVIEW_STATUS and other live SQLite-backed API status as authoritative; use the branch-portable xBRIEF plan.metadata.pipeline mirror as a corroborating signal when API status is missing, stale, or ambiguous. If the mirror disagrees with the API, log a bug and prefer the API.

ConditionCurrent PhaseJump To
No workspace, no agent stateNot startedPhase 0 → Phase 1
Workspace exists, agent active + tmux runningAgent workingPhase 2
Workspace exists, agent active, no tmuxAgent crashed/stuckPhase 2 (recovery)
Workspace exists, agent stopped, no completionAgent gave up or crashedPhase 1 (resume)
Completion marker exists, reviewStatus = "pending" or "reviewing"Awaiting reviewPhase 4
reviewStatus = "failed", work agent has feedbackFeedback loopPhase 5
reviewStatus = "passed", testStatus = "pending" or "testing"Awaiting testsPhase 6
reviewStatus = "passed", testStatus = "passed"Merge readyPhase 7
reviewStatus = "passed", testStatus = "failed"Test failedPhase 5 (test feedback)
mergeStatus = "merged"DoneReport success

Print which phase you're entering and why, e.g.:

"Issue PAN-129 is in Phase 4 (review pending) — reviewStatus is 'reviewing', skipping to monitor review agent."

Supervision Workflow

Phase 0: Pre-flight Check

Only needed if dashboard isn't running or Cloister isn't active.

# Dashboard running?
curl -s http://localhost:3011/api/health | jq .

# Cloister running? (needed for specialist handoffs)
curl -s http://localhost:3011/api/cloister/status | jq '{running, lastCheck}'

# Specialists initialized?
curl -s http://localhost:3011/api/specialists | jq '.[] | {name, state, isRunning}'

If workspace doesn't exist, create it:

pan workspace create PAN-{ID}

If Cloister isn't running, start it:

curl -s -X POST http://localhost:3011/api/cloister/start

Phase 1: Spawn or Resume Agent

Check if agent exists and resume or spawn:

# If agent state exists and has a session ID — resume
pan resume PAN-{ID}

# If no agent state — spawn fresh
curl -s -X POST http://localhost:3011/api/agents \
  -H 'Content-Type: application/json' \
  -d '{"issueId": "PAN-{ID}"}'

Or use the dashboard UI via Playwright:

  1. Navigate to https://overdeck.localhost
  2. Find the issue card for PAN-{ID}
  3. Click "Start Agent" or "Resume"

Phase 2: Monitor Work Phase

Poll the agent's activity every 30-60 seconds. Watch for:

Signs of progress:

  • tmux pane shows tool calls, file edits, test runs
  • lastActivity timestamp in state.json is updating
  • Heartbeat file is fresh: ~/.overdeck/heartbeats/agent-pan-{ID}.json

Signs of trouble:

  • No output change for > 5 minutes → agent may be stuck
  • Error messages in tmux output
  • Agent asking questions with no one to answer
  • Auth errors (wrong API key, provider issues)

Monitoring commands:

# Watch live output (non-blocking)
tmux -L overdeck capture-pane -t agent-pan-{ID} -p -S -30

# Check heartbeat freshness
cat ~/.overdeck/heartbeats/agent-pan-{ID}.json 2>/dev/null | jq '{timestamp, tool_name, current_task}'

# Check activity log
curl -s http://localhost:3011/api/agents/agent-pan-{ID}/activity | jq '.[-3:]'

If stuck: Poke the agent or send a message:

pan tell PAN-{ID} "Are you stuck? Please continue working on the task."

Phase 3: Watch for Completion Signal

The agent should eventually run pan done PAN-{ID}. Watch for:

# Check if completed marker exists
ls -la ~/.overdeck/agents/agent-pan-{ID}/completed 2>/dev/null

# Check review status (set by `pan done`)
curl -s http://localhost:3011/api/review/PAN-{ID}/status | jq .

Expected state after completion:

  • completed file exists in agent state dir
  • Review status: { reviewStatus: "reviewing" | "pending", testStatus: "pending" }
  • GitHub issue has "In Review" label or status

Common failures at this stage:

  • Agent doesn't call pan done — it just stops
  • Agent calls it but dashboard doesn't process it (API error)
  • Review isn't auto-triggered after completion

If review not triggered:

# Manually trigger review
curl -s -X POST http://localhost:3011/api/review/PAN-{ID}/trigger

Phase 4: Monitor Review Agent

Once review is triggered, the review-agent specialist should wake up:

# Check specialist status
curl -s http://localhost:3011/api/specialists | jq '.[] | select(.name == "review-agent")'

# Watch review agent output
tmux -L overdeck capture-pane -t specialist-review-agent -p -S -50 2>/dev/null

# Check review status progression
curl -s http://localhost:3011/api/review/PAN-{ID}/status | jq '{reviewStatus, reviewNotes}'

Expected outcomes:

  • reviewStatus: "passed" → proceeds to test
  • reviewStatus: "failed" with reviewNotes → feedback sent to work agent

Common failures:

  • Review agent not waking up (Cloister not running, specialist not initialized)
  • Review passes but doesn't trigger test agent
  • Review fails but feedback not delivered to work agent
  • Review agent crashes mid-review

If review agent doesn't wake:

# Wake it manually
curl -s -X POST http://localhost:3011/api/specialists/review-agent/wake

# Or reset and re-trigger
curl -s -X POST http://localhost:3011/api/specialists/review-agent/reset
curl -s -X POST http://localhost:3011/api/review/PAN-{ID}/trigger

Phase 5: Monitor Feedback Loop (if review failed)

If review returned feedback, the work agent should receive it and fix issues:

# Check if work agent received feedback
tmux -L overdeck capture-pane -t agent-pan-{ID} -p -S -50 2>/dev/null | tail -20

# Check auto-requeue count (circuit breaker: max 3)
curl -s http://localhost:3011/api/review/PAN-{ID}/status | jq '.autoRequeueCount'

The work agent should:

  1. Read the feedback
  2. Fix the issues
  3. Run pan review request PAN-{ID} -m "Fixed: ..."

If feedback not delivered: This is a code bug to fix. Check:

  • send-feedback-to-agent skill
  • Dashboard's feedback delivery mechanism
  • Agent's message queue in ~/.overdeck/agents/agent-pan-{ID}/mail/

Phase 6: Monitor Test Agent

After review passes, test-agent should run:

# Check test status
curl -s http://localhost:3011/api/review/PAN-{ID}/status | jq '{testStatus, testNotes}'

# Watch test agent
tmux -L overdeck capture-pane -t specialist-test-agent -p -S -50 2>/dev/null

Expected: testStatus: "passed" → ready for merge

Common failures:

  • Test agent not triggered after review passes
  • Tests fail but agent doesn't report results
  • Test agent crashes

Phase 7: Verify Merge Readiness

After tests pass:

# Final status check
curl -s http://localhost:3011/api/review/PAN-{ID}/status | jq .

Expected final state:

{
  "reviewStatus": "passed",
  "testStatus": "passed",
  "readyForMerge": true
}

At this point, the user clicks MERGE in the dashboard.

Intervention Protocol

When you find a bug in the Overdeck infrastructure:

  1. Log the finding — add to your running bug list with symptom, expected behavior, and actual behavior
  2. Check for existing issuesgh issue list --state open --search "keyword" to avoid duplicates
  3. File or update a GitHub issue — include context from this oversight run
  4. Assess: blocker or not?
    • If blocker: Stop the agent, fix the code, rebuild (npx tsup or restart dashboard), resume the agent, continue testing
    • If not blocker: Log it, file the issue, keep going — don't derail the test run for non-blocking bugs
  5. After fixing a blocker, verify the fix actually works by continuing through the same pipeline stage
  6. Continue monitoring from the current phase

What Counts as a Bug

Be thorough. All of these are findings worth logging:

  • Dashboard shows wrong status, stale data, or flickers
  • Agent state file says one thing, dashboard shows another
  • xBRIEF tasks not created, duplicated, or disappearing
  • Specialist doesn't wake up or takes too long
  • Terminal output garbled or missing
  • API returns unexpected response
  • Status transition skipped or out of order
  • Workspace in inconsistent state (e.g., directory exists but no git worktree)
  • Any error in server logs, even if the pipeline recovers

Key API Endpoints

EndpointMethodPurpose
/api/healthGETDashboard health
/api/agentsGETList all agents
/api/agents/:id/outputGETAgent terminal output
/api/agents/:id/activityGETAgent activity log
/api/review/:id/statusGETReview/test/merge status
/api/review/:id/triggerPOSTTrigger review
/api/review/:id/requestPOSTRe-request review
/api/issues/:id/approvePOSTApprove & merge
/api/specialistsGETList specialists
/api/specialists/:name/wakePOSTWake specialist
/api/cloister/statusGETCloister status
/api/cloister/startPOSTStart Cloister

Timing Expectations

PhaseExpected Duration
Work phase5-30 min (depends on complexity)
Review2-5 min
Feedback fix5-15 min per round
Testing1-3 min
Total (no issues)10-40 min
Total (with 1 feedback round)20-60 min

Alternatives

Compare before choosing

Computed 10023,781

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 1004,922

dotnet/skills

migrate-vstest-to-mtp

Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing

Computed 984,922

dotnet/skills

maui-dependency-injection

Guidance for configuring dependency injection in .NET MAUI apps — service registration in MauiProgram.cs, lifetime selection (Singleton / Transient / Scoped), constructor injection, Shell navigation auto-resolution, platform-specific registrations, and testability patterns. USE FOR: "dependency injection", "DI setup", "AddSingleton", "AddTransient", "AddScoped", "service registration", "constructor injection", "IServiceProvider", "MauiProgram DI", "register services", "BindingContext injection".

Computed 983,251

davepoon/buildwithclaude

circleci-automation

Automate CircleCI tasks via Rube MCP (Composio): trigger pipelines, monitor workflows/jobs, retrieve artifacts and test metadata. Always search tools first for current schemas.