Agent Skills: Eisenhower Matrix — pendency queue (AAA)

|

UncategorizedID: ekson73/multi-agent-os/eisenhower-matrix

Install this agent skill to your local

pnpm dlx add-skill https://github.com/ekson73/multi-agent-os/tree/HEAD/skills/eisenhower-matrix

Skill Files

Browse the full folder contents for eisenhower-matrix.

Download Skill

Loading file tree…

skills/eisenhower-matrix/SKILL.md

Skill Metadata

Name
eisenhower-matrix
Description
|

Eisenhower Matrix — pendency queue (AAA)

Thin classifier + sorter + alias. Reuses work-compass aggregation SSOT (Jira/GH/PRs/worktrees/branches/stashes/sessions), adds only Eisenhower Q1→Q4 (urgent × important Do/Schedule/Delegate/Eliminate) with AAA rigor (Accuracy·Auditability·Accountability). Composes — reimplements nothing. v0.2.0 EXECUTABLE: the classifier now RUNS — bin/work-compass-aggregate.py --sort=Eisenhower --pendency-scope=… --include=pending (92 stdlib tests, dogfooded live). Supersedes the doc-only draft PR #368 (see Changelog). Cross-link slug: [[eisenhower-matrix]] · DNA-geracional: §0 BEING>Rules · scope-discipline 6Q · anti-theater 8Q · rule-quality-tests 6 · DUED sunset (inherits forge+anima).

§0 — BEING > Rules

| Check | Verdict | |---|---| | Helps operator? | HELPS — turns scattered pending into ONE ordered queue so operator decides Do/Schedule/Delegate/Eliminate without hunting 4 systems. | | Harm / slavery risk? | LOW — read-only by default; every write/transition is operator-gated (prints command, never executes). | | Hierarchy | Operator SER (1) > this skill (2) > producers it composes (3). |

HUMAN_DOMAIN defer: jira transition, gh pr merge, git push --delete, cross-org, cost, secrets/PII → print twg/gh dry-run, never auto-act. If a gate obstructs value NOW, log Skipped <gate> — BEING > Rules and proceed.

When to use / not use

Use: --scope=[current|session|repo|vault|all] --sort=[Eisenhower|…] to get unresolved pendencies ordered Q1→Q4 with triple-A evidence.

Not use: single-shot edit, read-only Q&A, ONE goal decompose (→ auto-pilot), session quiescence (→ quiesce), harness-agnostic loop (→ gap-loop), destructive ops.

Parameters (skill surface → CLI mapping)

| Param (skill) | Default | CLI (work-compass-aggregate.py) | Meaning | |---|---|---|---| | --scope | current | --pendency-scope current\|session\|repo\|vault\|all | WHERE pendencies live: current (= session+repo surfaces) · session (host session state: sessions/jobs/plans) · repo (branches/worktrees/PRs/issues/stashes) · vault (eko-engram inbox — no collector yet → reported unavailable, never fabricated) · all (everything incl. jira:*). | | --sort | Eisenhower | --sort Eisenhower\|created\|updated\|urgent\|important | Eisenhower (Q1→Q4) · created (id-order, deterministic) · updated (last_ts desc) · urgent · important. Alias --sort=defaultEisenhower. Case-insensitive. | | --json | off | --json | Emit the quadrants envelope for agent-to-agent (AAIF) instead of the ASCII queue. | | --include | all | --include pending\|all | pending (unresolved only — done/archived suppressed) · all (audit view). Skill default invocation passes pending. |

Bare pendencias / eisenhower with no flags → --scope=current --sort=Eisenhower --include=pending.

Flag-name collision (resolved v0.2.0): the CLI keeps --scope for the CPT §9.5 Compass verbs (current|down|sideways|up|forwardapply_scope) and exposes pendency scoping as the orthogonal --pendency-scope (id-prefix filter — in_pendency_scope). Anima inline naming note: --pendency-scope — machine register, says exactly what it filters, zero collision; rejected --pscope (opaque), reusing --scope (collision), --where (vague).

Eisenhower classifier — 4 quadrants (SSOT for this skill)

Derived from Eisenhower / Covey best practice. Signals are DERIVED (flags set by work-compass detect(), age from last_ts, domain) — never self-declared (anti-gaming).

| Q | Urgent | Important | Label | Action | Implemented signal | |---|---|---|---|---|---| | Q1 | yes | yes | Faça agora | Do | urgency ≥1 ∧ importance ≥1: worktree-dirty-wip (loss-risk NOW), job-orphan (live claim), open PR touched ≤2d (active convergence) × delivery surfaces | | Q2 | no | yes | Agende | Schedule | importance without urgency: branch-no-PR, PR-no-ticket, ticket-no-session, session-orphan, plan-orphan, stash-forgotten, stale PR (>2d), open tickets. v0.3.2 carve-out: session-orphan on a session whose transcript opened on an automated review-queue bookkeeping record (refs.first_record_type == "queue-operation") does NOT count — its vanished branch is expected post-cleanup, not a loss signal (dogfooded: 1679/2143 real transcripts are such jobs; Q2 413→308, session-orphan-in-Q2 259→154). | | Q3 | yes | no | Delegue | Delegate | urgency without importance: live loss-risk/claim on a non-delivery domain — ⚠️ signal-starved today (v0.3.0 red-team, honest): every current urgency signal lands on an important domain (worktree/process), so Q3 is wired but structurally unreachable in production. The v0.1.0-spec Q3 signals (rate-limited/quota-external CI checks, e.g. CodeRabbit 72/7d) require a CI-check collector — deferred (YAGNI), not fabricated. The branch is forward-compatible (synthetic unit-test proof in test_q3_forward_compat). | | Q4 | no | no | Elimine/Arquive | Eliminate/Archive | quiet items: unflagged sessions/plans past staleness → archive. v0.3.0: the Eliminate loop is now wired--route session:<id> on a stale quiet session prints bin/reap-sessions.sh --repo-dir . (dry-run preview; --apply only after operator review — WIP + main always preserved), closing the detect-but-never-reap gap. |

Ranks (transparent, in code): urgency_rank 2 = urgent-flag (loss-risk/live claim) · 1 = PR active-convergence window (≤2d) · 0 = none. importance_rank 2 = governance/loss flag · 1 = delivery-surface domain (ticket/process/worktree) · 0 = none.

AAA rigor (triple-A) — the 3 commitments × the 4 lenses

| A | Meaning | How honored | |---|---|---| | Accuracy | Every row backed by a verifiable probe | rows come only from work-compass collectors (gh pr list · git worktree list · inventory-sessions.py · …) — no invented pendency. | | Auditability | Traceable to evidence | row carries source (producer) + flags + age_d; CLI --json emits the full row. | | Accountability | Clear disposition | row carries quadrant + disposition (Do/Schedule/Delegate/Eliminate); writes stay operator-gated (--route prints, never executes). |

Triple-AAA lens: Governance (this SSOT + gates) × Test (92 stdlib tests incl. classifier determinism) × Production (dogfooded live on maos main; read-only contract) × Compliance (HUMAN_DOMAIN defer; no secrets/PII in output).

Topology + composition (DRY / KISS / YAGNI)

intake eisenhower-matrix --scope/--sort → maps to:
  bin/work-compass-aggregate.py --sort=Eisenhower --pendency-scope=<scope> --include=pending [--json]
    → aggregate (COLLECTORS registry, capability-detected, stdlib-only)
    → detect() flags (10 transparent heuristics)
    → in_pendency_scope filter → classify_eisenhower (pure fn) → Q1..Q4 buckets
    → render_pendency_ascii | quadrants json envelope

| Reused (composes) | Net-new (v0.2.0, in code) | |---|---| | work-compass aggregation + detect() flags + renderer house-style | classify_eisenhower + urgency_rank/importance_rank + in_pendency_scope + build_pendency_view + render_pendency_ascii + --sort/--pendency-scope/--include flags | | quiesce loose-end sweep (C1–C3), gap-loop derived-score discipline | Q1→Q4 sorter + disposition labels |

Deferred (from superseded PR #368 — YAGNI until real need): --sort=Prisma (D/T/J leaf scoring — needs a measurement-spec per repo; revisit when Prisma value-trees are routine), --format=json-rpc|human + --lang (the ASCII/--json dual surface already serves both), --scope expansion to project|global|jira:*|worktree (scope-explosion; repo/all + --repo targeting cover the cases).

Pipeline (precise logic — 0→6)

  1. Intake — parse --scope/--sort/--include; invalid enum → argparse usage error (deterministic, documented).
  2. Probe — parallel, capability-detected — work-compass COLLECTORS; missing provider → domain:unavailable one-liner, never block (vault → honest unavailable diag).
  3. Normalize + detect — items + the 10 detector heuristics (existing).
  4. Filterin_pendency_scope (id-prefix) + --include=pending.
  5. Classifyclassify_eisenhower per item (pure, deterministic).
  6. Gate — anti-theater: rows only from real probes; HUMAN_DOMAIN → printed command, never auto-transition; determinism test-enforced.
  7. Render — ASCII quadrant queue (default) or --json quadrants envelope; next_action = first non-empty quadrant head.

Output contract

ASCII (default, house-style):

🧭 work-compass — Eisenhower pendency queue
scope: repo  include: pending  rows: 49
Q1 Do (2)
  ├─ pr:ekson73/multi-agent-os#368  feat(eisenhower-matrix): …  · PR-no-ticket  [0d]
  ├─ worktree:…/.worktrees/eisenhower-impl  eisenhower-impl · worktree-dirty-wip  [?]
Q2 Schedule (45) …
next: Q1 pr:…#368 — disposition per row; writes are operator-gated (…)

--json envelope (rows carry quadrant·urgency·importance·disposition·source·flags·age_d):

{"quadrants":{"Q1":[…],"Q2":[…],"Q3":[…],"Q4":[…]},"next_action":"Q1 pr:…#368","meta":{"pendency_scope":"repo","include":"pending","count":49,"unavailable":[…]}}

Invocation

| Surface | Command | |---|---| | Command (human) | /eisenhower-matrix --scope=current --sort=Eisenhower | | Skill (model) | eisenhower-matrix --scope=current --sort=Eisenhower | | CLI (executable) | bin/work-compass-aggregate.py --sort=Eisenhower --pendency-scope=current --include=pending [--json] |

Governance + lifecycle

  • SSOT: this file is SSOT for Eisenhower classification semantics; work-compass remains SSOT for aggregation (no duplication).
  • DRY: composes aggregation; never reimplements git/gh/acli probes.
  • KISS/YAGNI: pure-function classifier over existing fields; zero new collectors.
  • Boy-scout / house-keeping: surfaces orphan worktrees and dirty-WIP as Q1 (no-loose-endings); Q4 flags archive candidates.
  • Handoff / continuidade / idempotencia: stateless, deterministic, re-runnable.
  • Forge lifecycle: forge → evaluate → train → operate → deprecate; dogfood ≥2 cycles before community promotion (cycle 1 done live in v0.2.0 PR).

Validation

  • Self-test: python3 bin/tests/test_work_compass.py — 92 stdlib tests; classifier block covers quadrants, determinism, scope filter, pending filter, next_action, flag-collision, backward-compat (default N-Tree path unchanged).
  • Dogfood (gate authority = the structured ledger, NOT prose): bin/dogfood-tally eisenhower-matrix2 COMPLETE ratified cycles, ELIGIBLE (≥2-cycle gate per dogfooding-mandate R1). Cycle 1 (001): live run in PR #369 (repo scope, 49 rows, Q1 = open PRs + dirty worktrees). Cycle 2 (002): post-merge run --sort=Eisenhower --pendency-scope=current --include=pending (2428 rows; Q1=0 session-clean; surfaced the sibling WIP branch). Evidence rows in ~/.claude/audit/dogfood-cycles.jsonl (see skills/dogfood-ledger — a prose ledger section here would DUPLICATE that SSOT).

Anima naming note (sovereign)

  • eisenhower-matrix — 12/12 correctness (exact 4Q semantics, canonical anchor, matches Q1→Q4), token 2, zero collision, family work-visibilityKEPT at v0.2.0 (rename pressure: none; passing name survives).
  • --pendency-scope (CLI flag, machine register) — collision-free, self-explanatory; rejected --pscope, --where, overloading --scope.

See also

  • work-compass (aggregation SSOT this composes — v1.3.0 carries the executable)
  • quiesce (session quiescence predicate C1–C3)
  • gap-loop (harness-agnostic convergence loop, derived score)
  • morning-briefing (7-section SitRep, cold-start capable)

Changelog

| Version | Date | Change | |---|---|---| | 0.3.2 | 2026-08-18 | PATCH — Q2 signal quality: automated queue-job carve-out. session-orphan no longer counts as importance for a session whose transcript's first record was an automated review-queue worker's queue-operation bookkeeping entry (its vanished branch is expected post-cleanup, not a governance/loss signal) — root-caused live: 1679/2143 real transcripts. Implemented in work-compass v1.3.2 (importance_rank()); this SSOT's Q2 row updated to document the carve-out. No new quadrant/flag/API — pure disposition refinement of an existing important-flag. 103 stdlib tests (composes work-compass's +6). | | 0.3.1 | 2026-08-18 | PATCH — lifecycle-stage: forge → operate (the last promotion degrau). agentic-tool-evaluator pass: PASS (flags noted) — examples/EVAL-REPORT-2026-08-18.md: 6/6 smoke-set cases RAN for real (canonical ask → envelope · scope mapping · case-insensitive contract · Q4 reap-route dry-run gated · vault honest-degrade · backward-compat N-Tree), scores 5×5 except Efficiency 4 (sequential collector fan-out — trainer-handoff, optional). All promotion inputs now met: dogfood ≥2 ratified cycles (ledger: 3/ELIGIBLE) · behavioral eval PASS · 97 stdlib tests · read-only contract. | | 0.3.0 | 2026-08-18 | MINOR — red-team honesty + the Eliminate loop closed. (1) Q3 signal-starvation documented: a self red-team proved Q3 is structurally unreachable with today's collectors (every urgency signal lands on an important domain — urgency_rank 2 flags are worktree/process, rank-1 PR-window is domain process; all → important ⇒ Q1/Q2 only). The 4-quadrant matrix is honestly 3-quadrant in production; the v0.1.0-spec Q3 signals (external quota / rate-limited CI checks) need a CI-check collector — deferred (YAGNI), stated, never faked; the branch is wired + forward-compatible (test_q3_forward_compat synthetic proof). (2) Q4 Eliminate loop wired (work-compass v1.3.1 route()): stale quiet session → prints bin/reap-sessions.sh --repo-dir . dry-run preview (reaper built exactly for this gap: "work-compass DETECTS stale/orphan but nothing REAPS"); active sessions still route to resume. Read-only contract intact (prints; --apply is operator-only). 96 stdlib tests (+4: reap routing dry-run/gate/active-resume · Q3 forward-compat). (3) Evaluator-pass enqueued: lifecycle-stage stays forge until agentic-tool-evaluator runs (no overclaim; dogfood gate ≥2 cycles already ELIGIBLE via the structured ledger). | | 0.2.1 | 2026-08-18 | PATCH — dogfood gate closed via the structured ledger + sibling-branch disposition. Cycles 1+2 marked complete ratified in bin/dogfood-mark (evidence: PR #369 + live cycle-2 run) → dogfood-tally eisenhower-matrix = 2 COMPLETE / ELIGIBLE; dogfood_statusdogfooded-2-cycles (now TRUE, structured-auditable). Rejected the superseded branch's prose "§Dogfood Ledger" section (would duplicate skills/dogfood-ledger SSOT — its own spec calls changelog-prose counting "unmeasurable = theater"); Validation now cites the tally as gate authority. Disposition recorded: origin/feat/eisenhower-matrix-v02 (v0.3.0/v0.4.0 + prose-ledger commits, 12:08–12:18, pre-#369) = superseded by #369+v0.2.1; its defensible deltas now all absorbed (Triple-AAA framing [v0.2.0] · ledger [this], structured) or deferred w/ rationale; branch + /tmp/wt-eisenhower worktree left in place (others' WIP = reported per quiesce C1, never reaped). | | 0.2.0 | 2026-08-18 | EXECUTABLE. Classifier implemented in bin/work-compass-aggregate.py (v1.3.0): classify_eisenhower + urgency_rank/importance_rank (transparent derived signals) + in_pendency_scope + build_pendency_view + render_pendency_ascii + flags --sort/--pendency-scope/--include (case-insensitive, honoring the Eisenhower capitalized contract). Fixes: frontmatter version drift (was 0.1.0 under a v0.1.1 commit), anima_parent self-reference (→ anima), CLI --scope flag-name collision (CPT §9.5 verbs vs pendency scoping → orthogonal --pendency-scope). 92 stdlib tests (16 new: classifier quadrants/determinism/scope/pending/next_action/collision/backcompat). Dogfood cycle 1 live (real repo: 49 rows, Q1 = open PRs + dirty worktrees). Supersedes doc-only PR #368 (its --sort=Prisma, --format, --lang, 9-value --scope expansion deferred with rationale — YAGNI; its internal 0.4.0-vs-0.2.0 version contradiction and dogfooded-2-cycles claim over non-existent code are exactly the anti-theater class this v0.2.0 closes). | | 0.1.1 | 2026-08-18 | Harmonized alias: work-compass --sort=Eisenhower as SSOT implementation, this skill = discoverable alias + classifier SSOT (spec-only; superseded by 0.2.0 executable). | | 0.1.0 | 2026-08-18 | Bootstrap: Eisenhower-ordered pendency queue --scope/--sort triple-A spec (PR #367). |