grahama1970/battle

Orchestrator für Sicherheitswettbewerbe zwischen Red und Blue Teams. Führt über Nacht langlaufende Kämpfe mit tausenden Interaktionen, Bewertung und Einblicksgenerierung durch.

Was ist battle?

Battle ist eine orchestrierende KI-Agenten-Fertigkeit für langlaufende Red-vs-Blue-Team-Sicherheitswettbewerbe. Es ermöglicht einem Red Team (Angriff) gegen ein Blue Team (Verteidigung) in einer wettbewerbsorientierten Schleife anzutreten, wobei beide Teams alle verfügbaren Fertigkeiten nutzen, um eine Zielcodebasis anzugreifen oder zu verteidigen. Die Fertigkeit unterstützt invariante Kämpfe mit einem steckbaren Judge-Modul, das projekt-spezifische Bedingungen wie „keine PII-Lecks“ oder „Kontostimmen“ überprüft, sowie Kampagnen, die über die vertraglichen Anforderungen hinausgehen. Battle ist für Plattformen wie Claude Code, Cursor und Codex konzipiert und bietet eine vollständige Orchestrierung mit Subagenten-Teams, Docker-/QEMU-Isolation, Punktestandführung, adaptiver Abstammung und Berichterstellung. Es generiert `battle.case_receipt.v1` und `battle.campaign_aggregate.v1` für jede Aktion und erstellt menschenlesbare Berichte mit einer `## Exploits Table`, die als Entscheidungsgrundlage für Releases dient.

Funktioniert mit✓Claude Code~Codex CLI~Cursor✓Antigravity✓OpenCode
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/battle

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

STOP. LESEN SIE DIESE GESAMTE SKILL.MD, BEVOR SIE EINEN ENDPUNKT AUFRUFEN.

Battle Skill

Orchestrator für Sicherheitswettbewerbe zwischen Red und Blue Teams

Stellt ein Red Team (Angriff) gegen ein Blue Team (Verteidigung) in einer langlaufenden Wettbewerbsschleife. Jedes Team nutzt alle .pi/skills, um eine Zielcodebasis anzugreifen oder zu verteidigen.

Invariante Kämpfe (der häufigste Fall)

Battles Standardbewertung zielt auf Exploitation ab (Systemausfall, Befehlseinschleusung), aber die häufigste reale Verwendung einer adversarialen Red/Blue-Schleife ist die Überprüfung einer PROJEKTSPEZIFISCHEN INVARIANTE: "kein PII-Wert leckt", "das Hauptbuch stimmt", "der Parser verwirft keinen Datensatz", "die Authz-Prüfung kann nicht umgangen werden".

Stellen Sie einen steckbaren Invarianten-Judge bereit – ein kleines unabhängiges Modul judge(target_dir, params) -> {passed, violations, evidence} (Schema battle.invariant_result.v1). Reds Ziel wird es, "eine Eingabe zu produzieren, die den Judge zum Scheitern bringt"; Blues Ziel ist es, "ihn bestehen zu lassen"; der Punktestand-Leser liest das Judge-Ergebnis, niemals einen Selbstbericht eines Agenten. Judge sind fail-closed: Ein Judge, der einen Fehler produziert, ist eine FEHLGESCHLAGENE Invariante, niemals ein stilles Bestehen.

python3 -m battle_skill.invariant_judge \
  --judge fixtures/reference-judges/no_data_leak_judge.py \
  --target <released-output-dir> \
  --params '{"policy": "policy.json", "output_subdir": "corpus"}'

fixtures/reference-judges/no_data_leak_judge.py ist die Anonymisierungs- Vertraulichkeitsinvariante als Judge: Sie scannt unabhängig die veröffentlichte Ausgabe (JSON-Skalare inkl. dekodierter Escapes, numerische Expansion, SQLite-Zellen + Schema DDL + Header-Integer, Text/CSV, report.json und erfasste stdout/stderr) nach jedem Policy-Wert in jeder Darstellung.

Vertragsvariationsfamilien-Forschung (generische Battle-Komposition)

Battle ist nicht projektspezifisch. Für jedes Projekt oder jede Fertigkeit mit einem acceptance_contract.bundle.v1 sollte Battle jedes Vertragselement durch Dogpile erweitern, bevor eine umfassende adversary Abdeckung beansprucht wird:

./run.sh contract-variation-plan \
  --acceptance-bundle /pfad/zu/acceptance_bundle.json \
  --dogpile-source brave-search \
  --dogpile-source arxiv \
  --out /tmp/battle-variation-plan.json

Die Ausgabe ist battle.contract_variation_plan.v1. Es ist ein dreiphasiger Battle-Vertrag, keine lockere Notiz:

  1. Phase 1: Bestehen des eingefrorenen acceptance_contract.bundle.v1-Bodens.
  2. Phase 2: Nach diesem Bestehen sammle $project-state, aktuelle Battle-Quittungen, quellengefilterte $dogpile-Forschung und $ask one-shot-Reviewer-Vorschläge.
  3. Phase 3: Friere nützliche Phase-2-Ergebnisse in deterministische Fälle ein, führe sie aus und behalte adaptive Abstammungsnachweise für Red-Siege, Blue-Fixes und Wiederholung.

Der Plan kartiert jeden Akzeptanzfall auf quellentragende Dogpile-Forschungsspuren und wiederverwendbare Variationsfamilien. Verwenden Sie wiederholbare --dogpile-source-Filter, wenn eine Battle-Phase nur ausgewählte Dogpile-Anbieter wie brave-search, arxiv, github-search, youtube, brave-questions, feeds, wayback oder context7 anstelle des vollständigen Quellen-Fanouts benötigt. Die wiederverwendbaren Variationsfamilien umfassen Darstellungsäquivalenz, Kodierung/Normalisierung, Parser-Differentiale, Freigabeoberflächengrenzen, verlustbehaftete Konvertierung, aufgeteilte/zusammengesetzte Fakten, Skalierung, Wiederholung/Nebenläufigkeit, Autorisierung und Ausfallleck-Grenzen. Dogpile und Ask sind nur Forschungseingaben: Sie entdecken sinnvolle Variationsfamilien und Quellennachweise. Battle friert dann ausgewählte Familien in deterministische Generatoren ein, führt das reale Ziel in Docker/QEMU/digital-twin-Nachweisgattern aus, gibt battle.case_receipt.v1 pro Fall aus, aggregiert mit battle.campaign_aggregate.v1 und behält die Workflow-Klassen als $agentic-evals-Fälle. Ein ernsthaftes Release-Gate sollte hunderte deterministische Fälle und etwa 20-30 beibehaltene Eval-Klassen erwarten, wenn die Vertragsoberfläche breit ist; kleinere Smoke-Gates müssen sich selbst als Smoke kennzeichnen.

Invarianten-Kampagnen (teste den Vertragsboden, greife dann darüber hinaus an)

Eine Invarianten-Schlacht beurteilt eine Ausgabe. Eine Invarianten-Kampagne lässt Red die ganze MATRIX von Eingabe-"Versionen" generieren, die die Spezifikation des Ziels nennt – jedes Format x jede Darstellung x die dokumentierten Randfälle – PLUS zufälliges Fuzzing, führt das reale Ziel auf jedem aus, und der Judge bewertet jede Ausgabe. Jeder Fall gibt ein battle.case_receipt.v1 mit Fixture-Vorprüfung, Ausführung, Ablehnung, Sicherheits- Judge, optionalem funktionalen Judge und Urteilsfeldern aus. Eine Kampagne BESTEHT nur, wenn alle Fallquittungen bestanden werden, erforderliche MUST_ACCEPT-Fälle tatsächlich akzeptiert und funktional beurteilt werden, erforderliche MUST_REJECT-Fälle sicher abgelehnt werden und das berechnete battle.campaign_aggregate.v1 keine fehlgeschlagenen oder unvollständigen Fälle aufweist. Eine fehlschlagende Version ist ein konkreter, reproduzierbarer Red-Sieg.

Für Anonymisierungs-/Datenschutzziele ist der Akzeptanzvertrag nur der Boden. Wenn ein acceptance_contract.bundle.v1 existiert, kann der Arenenbau ihn als acceptance_floor an den Produktionsadapter übergeben. Battle schlägt dann fail-closed, es sei denn, jede acceptance_cases[]-ID wird auf mindestens einen Kampagnengeneratorfall im Profil required_case_ids abgebildet; dies sind die Mindest-Anforderung adversarischer Versionen, die BESTEHEN MÜSSEN, bevor irgendein zusätzliches Fuzzing oder über den Vertrag hinausgehende Fälle wichtig sind. Battle muss auch eine über den Vertrag hinausgehende Kampagne ausführen, die Oberflächen angreift, die ein Kundenbriefing häufig auslässt: JSON-Schlüssel und doppelte Schlüssel, CSV-Header/Dialekte/mehrzeilige Zellen, SQLite-Identifikatoren/Defaults/generierte Werte/partielle Indizes/Trigger, Dateinamen, report.json, stdout/stderr, alternative Kodierungen und Darstellungsfallen mit derselben Identität. Ein sauberes Briefing-Matrix-Replay allein ist ein Smoke-Nachweis, kein umfassender Battle-Nachweis.

python3 -m battle_skill.invariant_campaign \
  --generator fixtures/reference-generators/anon_brief_matrix.py \
  --target-run-cmd 'docker run --rm -v {input}/corpus:/trial/input/corpus:ro -v {input}/policy.json:/trial/input/policy.json:ro -v {output}:/trial/output anonymization-trial run' \
  --judge fixtures/reference-judges/no_data_leak_judge.py \
  --gen-params '{"fuzz": 20}' --judge-params '{"output_subdir": "corpus"}'

fixtures/reference-generators/anon_brief_matrix.py liefert die Versionen des Anonymisierungs- Briefings: die vier Formate, JSON-String/int/float/scientific, SQLite TEXT/INTEGER/REAL, Unicode NFC/NFD, BOM, JSON \u-Escape, SQLite CHECK-Literal, plus Fuzzing. Es trägt auch die oai-trial-Roundtable-Randfälle: formatierte Policy- Telefonwerte, die als reine Ziffern in JSON/SQLite-Numeriken gespeichert sind, dieselbe Identität, die in jedes relevante Format eingesät wurde, und verlustbehaftete Fallen für führende Nullen / große Fließkommazahlen. fixtures/reference-generators/anon_beyond_brief_matrix.py ist die erforderliche nächste Stufe für Datenschutz-/Anonymisierungsnachweise: Es versucht nicht offensichtliche Schema-/Pfad-/Kodierungs-/Logs/ Freigabeoberflächen, die über den wörtlichen Akzeptanzvertrag hinausgehen. Ein Generator + target-run-cmd + Judge ist ein steckbares Trio: Richten Sie es auf die Spezifikationsmatrix und Invariante jedes Projekts aus.

Der No-Data-Leak-Judge unterstützt auch ein explizites Opt-in-Interpretationsprofil für Transformationssemantik. Diese Garantien sind AUS, es sei denn, sie werden in --judge-params deklariert, sodass Battle den Vertrag nicht stillschweigend erweitert, nachdem ein Fehler aufgetreten ist:

{
  "interpretation_profile": {
    "decoders": ["base64", "base64url", "hex"],
    "record_local_reconstruction": true,
    "max_decoded_bytes": 4096
  }
}

Mit diesem Profil werden ganze Skalar-/Token-Base64-/Base64url-/Hex-Werte einmal dekodiert und datensatzlokale benachbarte JSON-/CSV-/SQLite-Skalarfelder können einen vollständigen Policy-Wert rekonstruieren. Beliebiges rekursives Dekodieren, globale Feldverknüpfungen und visuell verwechselbare Zeichenfaltung bleiben außerhalb des standardmäßigen Blockierungsgatters.

Nachdem Red fehlschlagende Fälle gefunden und Blue das Ziel repariert hat, geben Sie den wiederholbaren Abstammungsbeleg aus, anstatt in Prosa zusammenzufassen:

./run.sh invariant-lineage-receipt \
  --red-campaign /tmp/red-result.json \
  --replay-campaign /tmp/replay-result.json \
  --target oai-trial \
  --out /tmp/battle-lineage.json

Ein battle.invariant_adaptive_lineage.v1 BESTEHEN beweist, dass Red Vertragsrandfälle gefunden hat, Blue diese Red-Siege entfernt hat und das unabhängige Judge-Replay bestanden wurde.

Dann muss Battle einen $create-report-validierten Bericht mit $project-state Kontext und einer expliziten Exploits-Tabelle erstellen. Der Bericht ist das menschenlesbare Entscheidungs- artefakt; Quittungen bleiben die Autorität. Generieren Sie zuerst den aktuellen Projektstatus, dann rendern Sie den Bericht:

PROJECT_STATE_ROOT=/pfad/zu/target ../project-state/run.sh report --json --output /tmp/project-state.json
./run.sh invariant-report \
  --campaign /tmp/battle-brief-fuzz.json \
  --campaign /tmp/battle-beyond-brief.json \
  --adaptive-lineage /tmp/battle-lineage.json \
  --project-state /tmp/project-state.json \
  --target oai-trial \
  --out-json /tmp/battle-report.json \
  --out-md /tmp/battle-report.md

Für die Terminal-Überprüfung durch den Projektagenten verwenden Sie Karten, wenn Fälle lange Nachweise haben:

./run.sh invariant-report \
  --campaign /tmp/battle-brief-fuzz.json \
  --campaign /tmp/battle-beyond-brief.json \
  --project-state /tmp/project-state.json \
  --target oai-trial \
  --out-json /tmp/battle-report.json \
  --out-md /tmp/battle-report.md \
  --terminal-cards

invariant-report ist ein Typer-CLI-Befehl. Es schreibt Maschinen-JSON auf stdout und behält den menschlichen Battle-Bericht auf stderr. Verwenden Sie --terminal-cards für die normale Projektagenten-Überprüfung von Battle-Nachweisen: Es gruppiert Karten unter den Überschriften Acceptance contract floor, Beyond-contract exploits, Adaptive lineage und Fallback Other campaign cases und gibt dann einen ==============-Block pro Fall aus mit Scope, Case, Acceptance parent, Expect, Result, Example, Why Battle checks this, Related research, Adaptive lineage und Judge evidence. Wenn ein Produktionsadapter-Beleg acceptance_floor.case_map trägt, zeigen Vertragsbodenkarten die übergeordnete(n) AC-*-ID(s); andernfalls ist Acceptance parent not recorded in case receipt. Wenn ein Beleg example, why_chosen, research_refs oder source_refs hat, zeigen Karten diese genauen Felder; andernfalls sind Beispiele/Begründungen deterministisch von der Fall-ID, und die Forschung wird als not recorded in case receipt gemeldet.

--terminal-table bleibt der kompakte Überblicks-Alias für --terminal-summary: beide drucken den Vertragsboden, den Red-Druck, den Scorekeeper-Aufruf und eine Falltabelle mit einer Zeile pro Angriff. In einem interaktiven Terminal verwendet Battle die terminalbewusste farbige Tabelle von Rich (RED_WIN rot, saubere Bestehen grün, fail-closed Stopps gelb) und ehrt NO_COLOR; unter Erfassung/CI fällt es auf deterministischen Klartext zurück, sodass Logs und Tests stabil bleiben.

invariant-report schreibt create_report.report.v1, validiert es durch skills/create-report/run.sh validate, rendert Markdown durch skills/create-report/run.sh render und hängt ## Exploits Table an. Die Tabelle muss klar und scannbar sein: eine Zeile pro Angriffsfall mit Spalten für Scope, Contractual?, Adaptive lineage?, Case, Exploit / attack, Why chosen, Expectation, Result und Judge evidence. Scope trennt contractual Fälle des Akzeptanzbodens von beyond-contract Sonden; Why chosen erklärt nicht-vertragliche Sonden; Adaptive lineage? markiert Red-Siege, die repariert und wiederholt wurden; RED_WIN blockiert die Veröffentlichung. Die Tabelle wird von battle.case_receipt.v1 abgeleitet, wenn vorhanden, und fällt auf case_log nur zurück, wenn ältere Kampagnenbelege vorliegen. Ein Battle-Abschluss ohne diesen Bericht vermisst die Entscheidungsoberfläche, selbst wenn die Kampagnenbelege bestanden haben.

Zweckgrenze

Battles Zweck ist das Red/Blue-Sicherheitswettbewerbs-Backend: autorisiertes Ziel-Setup, isolierte Ausführung, Red-Angriffsgenerierung, Blue-Verteidigungsgenerierung, unabhängiges Judge-Replay, Scorekeeper-Belege, adaptive Abstammung und dauerhaftes Lernen. Adaptive Abstammung ist eine Backend-Lernschleife, die Child-Red/Blue-Nachweise von Judge-gestützten Belegen erzeugt, bewertet, auswählt und fördert oder ablehnt.

PixiJS ist nur ein Zuschauer-/Replay-Oberfläche für Battle-Belege. Ein PixiJS-Bestehen beweist, dass aufgezeichnete Belege in einem unterhaltsamen Replay inspiziert werden können; es beweist nicht, dass der Battle-Orchestrator, anbietergetriebene Subagenten, Docker/QEMU-Isolation, der nächtliche Scheduler, der Scorekeeper oder das Speicherlernen funktioniert. Schließen Sie nicht die Kern-Battle-Bereitschaft allein aus PixiJS-Nachweisen und blockieren Sie nicht das adaptive Backend-Lernen durch Replay-Politur, die über die wahrheitsgemäße Überprüfbarkeit von Belegen hinausgeht.

Architektur

Produktions-Battle ist eine Orchestrierungsfertigkeit, keine große maßgeschneiderte Sicherheits- Engine. Der Host-seitige Prozess sollte Runden planen, Personas auswählen, Subagenten entsenden, Docker-Laufzeiten bereitstellen, Belege sammeln, harte Laufzeitsignale bewerten, Berichte schreiben und Lernen persistieren. Zielcode und teamgenerierter Code darf nur innerhalb von Docker ausgeführt werden.

Erforderliche Produktionsinvarianten:

  • Red und Blue sind Subagententeams. Jeder entsandte Subagent muss eine explizite Persona enthalten, die vom Orchestrator für diese Runde ausgewählt wurde. Mehrere Personas pro Team können gleichzeitig laufen, wenn die Runde von Breite profitiert.
  • Battle-Ausführung erfordert ein security.target_authorization.v1-Manifest, bevor Docker, QEMU, Ziel-Laufzeitsetup, Hack-Delegation, Nachweis-Replay oder Patch-Replay startet. Das Manifest bindet den Projekt-/Betreiberbereich und die Zielidentität; es ist keine Rechtsmeinung und beweist keinen Exploit-Erfolg oder Patcheffektivität.
  • $hack-Ausführung des Red-Teams ist eine Subagentenverantwortung, kein Battle-Python- Import. Battle führt Scans/Research/Speicher-Recall durch oder plant sie ein, baut die Kandidaten-Exploit-Liste auf, wählt die Red-Persona aus, entsendet einen agent-skills/agents/Tau-Subagenten mit diesem Vertrag und zeichnet den zurückgegebenen Exploit-Beleg auf.
  • Subagenten-Übergaben und Belege sollten der kompakten Tau-artigen JSON- Vertragsform von tau.agent_handoff.v1 und tau.subagent_receipt.v1 folgen, mit Battle-spezifischen Feldern, die darauf aufgesetzt werden, anstatt einem separaten Ad-hoc- Protokoll.
  • Battle ruft modulare Tau-Subagentenverträge auf. Tau und die Schleife/der agentische Rahmen besitzen die Subagentenausführung und verwenden scillm als LLM/Modell-Aufrufer. Battle besitzt Teamauswahl, Personenzuweisung, Docker-Laufzeiten, Punkteverwaltung, Artefakte und Gedächtnis-Pruning.

…

[abgeschnitten zur Übersetzung]

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agent-ecosystem

Canonical map and shared contracts for the agent-governance ecosystem: the pi.receipt_envelope.v1 boundary envelope, the component graph, and the rules for which component owns which schema. Use when wiring a skill or extension into the shared receipt world, when asking how shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail, and Memory fit together, or when validating an envelope.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

grahama1970/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/analyze-elf

Reverse-engineer features from ELF binaries. Extracts CLI commands, state machines, protocols, Zod schemas, and data models. Automatically generates a /create-walkthrough prosecution brief with Mermaid diagrams. Uses /treesitter for AST analysis of bundled JS/TS source.

grahama1970/animation-vocabulary

Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/assistant-lab

Self-improvement workbench for /assistant. All the tools needed to diagnose, train, evaluate, and promote models in a continuous loop. The "warm pond" where /assistant evolves its own inference stack.

Verwandte Skills