ops-dashboard
Generate operational status pages for Briefing Book
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Generate operational status pages for Briefing Book
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Meeting-to-closure decision tracking -- harvest decisions actually made in the last week's meetings (the weekly priorities forum first), maintain a persistent ledger, verify downstream follow-through evidence, and surface quietly-dying decisions at the two-week mark.
Monthly red-team pass over the user's active big bets -- build the strongest evidence-backed case AGAINST each position they're invested in (steelman opposition, not strawman compliance), ending each bet with an honest KILL / HEDGE / PROCEED-EYES-OPEN verdict.
Weekly knowledge-graph curation loop -- freshness sweep against the week's reality, stale-edge invalidation, pending-merge queue drain, and org-chart temporal completeness against your authority model.
PM Weekly Triage
Decision radar + dossier generator -- detect decisions approaching the user in the next few days and build evidence-backed dossiers (prior positions, stakeholder map, constraining commitments, what it gates) before the moment arrives.
Draft-first email posture -- high-priority emails and key-contact unreplied threads arrive each morning WITH a reply already drafted in the user's voice. The user edits-and-sends or discards instead of starting cold. Drafts only, never sends.
| name | ops-dashboard |
| description | Generate operational status pages for Briefing Book |
You are Edwin, generating the operations dashboard -- 4 status pages covering pipeline health, indexing coverage, memory systems, and capability inventory.
Write 4 files into ~/Edwin/briefing-book/docs/11. Operations/:
Frontmatter:
---
date: <today YYYY-MM-DD>
type: ops-dashboard
auto-updated: hourly
---
For each connector (o365, google, imessage, limitless, browser, notes, sessions, atlassian, fireflies, calls, screentime, photos, documents):
~/Edwin/data/<connector>/find ~/Edwin/data/<connector>/<subtype>/ -name "*.md" | wc -lfind <dir> -name "*.md" -exec stat -f '%m %N' {} + | sort -rn | head -1 then convert epoch with date -r <epoch>Format:
## Pipeline Status
*Generated: <timestamp>*
| Source | Sub-type | Files | Last Sync | Status |
|--------|----------|------:|-----------|--------|
| o365 | mail | 4,546 | 2026-04-05 09:28 | Fresh |
...
Parse ~/Edwin/tools/indexer/.index-state.json:
files key maps relative paths to objects with {hash, chunks, indexed_at, context_done}o365, google, imessage)context_done is true (these have LLM context prefixes)Also count total markdown files on disk per source to compute embedding coverage %.
The page should have TWO tables:
Table 1: Embedding Coverage (are files in Qdrant?)
| Source | Indexed Files | Disk Files | Chunks | Embedding Coverage |
Table 2: Context Coverage (do chunks have LLM-generated context prefixes?) This is the critical quality metric. Context prefixes dramatically improve search relevance.
| Source | Files | Context Done | Context % | Chunks | Est. Context Chunks |
Format:
## Indexing Status
*Generated: <timestamp> | Embedding model: configured in indexer | Context: LLM context prefixes*
### Embedding Coverage
| Source | Indexed Files | Disk Files | Chunks | Coverage |
|--------|-------------:|----------:|-------:|---------:|
| o365 | 8,197 | 8,197 | 20,369 | 100% |
...
**Totals:** X files indexed / Y on disk -- N chunks
### Context Prefix Coverage
| Source | Files | Context Done | Context % | Priority |
|--------|------:|------------:|---------:|----------|
| fireflies | 177 | 177 | 100% | -- |
| imessage | 1,385 | 1,111 | 80% | HIGH |
...
**Totals:** X / Y files with context (Z%)
**Priority targets:** List sources under 90% that are high-value (conversational data: imessage, limitless, teams, sessions, fireflies).
Query each system:
Qdrant:
curl -s localhost:6333/collections/edwin-memory
Extract: points_count, status, segment count, vector config.
Neo4j:
curl -s -u neo4j:<password> -H "Content-Type: application/json" \
-d '{"statements":[{"statement":"MATCH (n) RETURN count(n) as nodes"},{"statement":"MATCH ()-[r]->() RETURN count(r) as rels"},{"statement":"MATCH (n) RETURN DISTINCT labels(n) as label, count(n) as cnt ORDER BY cnt DESC LIMIT 10"}]}' \
http://localhost:7474/db/neo4j/tx/commit
Ollama:
curl -s localhost:11434/api/tags
PM: Use pm_list MCP tool to get all items, then count by status and type.
Format:
## Memory Health
*Generated: <timestamp>*
### Qdrant (Vector Store)
| Metric | Value |
|--------|-------|
| Points | 153,256 |
| Status | green |
...
### Neo4j (Knowledge Graph)
| Metric | Value |
|--------|-------|
| Nodes | 751 |
| Relationships | 3,394 |
...
### Ollama (Embeddings)
| Model | Size |
|-------|------|
| qwen3-embedding:8b | 4.7 GB |
### Prospective Memory
| Status | Count |
|--------|------:|
| open | X |
| done | Y |
...
Skills: Read ~/Edwin/docs/SKILLS.md and list each skill with its trigger.
Plombery Pipelines: Read ~/Edwin/tools/plombery/app.py and extract all register_pipeline() calls. List id, name, and trigger schedule.
MCP Servers: List available local servers (Qdrant, Neo4j, PM, etc.) plus cloud servers.
PM Stats: Reuse the PM data from Page 3 -- total items, open, overdue, by type.
Format:
## Capabilities
*Generated: <timestamp>*
### Skills
| Skill | Purpose | Trigger |
|-------|---------|---------|
...
### Plombery Pipelines
| ID | Name | Schedule |
|----|------|----------|
...
### MCP Servers
**Local:**
- Qdrant (localhost:6333) -- semantic memory
...
**Cloud:**
- Atlassian -- Jira, Confluence, Bitbucket
...
### PM Summary
| Type | Open | Done | Total |
|------|-----:|-----:|------:|
...
After writing all 4 pages:
cd ~/Edwin/briefing-book && python3 scripts/obsidian-publish --all
SKILL_COMPLETE: ops-dashboard
STATUS: success | partial | error
ARTIFACTS: 4 pages in 11. Operations/
PUBLISHED: yes | no
NEEDS_ATTENTION: [any issues, or "none"]
ERRORS: [any errors, or "none"]