hoa-introspect
Skill2 starsChanged 51 days agoMITView on GitHub
Produce an evidence-cited, cross-agent self-report with deterministic usage facets and a rigorously bounded blind-spot audit. Use only when explicitly asked for "my usage insights", "audit my work patterns", "where am I wasting effort", "blind spots", or a periodic "self-retro". Do not use for raw records or cross-agent search, a single-session summary, qualifying findings into approved assets (use hoa-introspect-distill), or direct skill creation (use hoa-skill-work). Heavyweight and explicit-invocation-only; never invoke as a side effect of another skill.
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- define-goalSkill
- ghc-searchSkill
- hoa-introspect-distillSkill
- hoa-skill-reviewSkill
- hoa-skill-workSkill
- m365-copilot-cdpSkill
- teams-cdpSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 6 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 24
Input: Prefer a manifest-first Retrieval Bundle in the consumed schema (hoa's prompts/cross-agent-history-retrieval.md can produce one).
- Very specific: line 39
Report language: Default to en-US. Honor report_language only from untracked configuration, or an explicit agent instruction.
- Very specific: line 44
Every report ends with On the Horizon, even when it contains only a next measurement suggestion.
- Very specific: line 50
Set report language and state scope first: Use en-US unless untracked report_language configuration or an explicit agent instruction …
- Distinctive: line 57
Generate L1 deterministically: Run:
- Distinctive: line 66
Build L2 candidates conservatively: Look for repeated work patterns, stated-goal versus observable-investment gaps, implicit assumptions, …
- Distinctive: line 72
Resolve before claiming: Put proposed claims and their citations in a JSON file, then run:
- Distinctive: line 83
Write safely: Before writing HTML or Markdown, ask the PII gate to check the exact output path.
- Distinctive: line 117
Use wording equivalent to: “This report is limited to the supplied/runtime- accessible records and cannot make claims about other agents or …
- Distinctive: line 124
Use this report outline:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
hoa-introspect
Turn a bounded set of agent-history records into a layered self-report:
- L1 — usage panorama: hard, reproducible counts produced only by
scripts/aggregate.py. - L2 — blind-spot audit: a small set of re-checkable qualitative findings, or explicitly none when evidence does not support one.
This is a reflective analysis, not a personality assessment. It describes observable work patterns within the supplied coverage only.
Contract
Input. Prefer a manifest-first Retrieval Bundle in the consumed schema
(hoa's prompts/cross-agent-history-retrieval.md can produce one). Without one,
work in bounded mode: accept only user-provided paths or records directly
accessible in this runtime.
Say exactly what that restriction excludes. Read
the minimal consumed schema before parsing.
Output. Produce all of the following:
- facets JSON (
aggregated_dataandfacets_summary) created byscripts/aggregate.py; - shareable HTML and Markdown reports written only after
scripts/pii_gate.pypermits their target; - a short, redacted at-a-glance chat summary.
Report language. Default to en-US. Honor report_language only from
untracked configuration, or an explicit agent instruction. Render all L1/L2
narrative and headings in that language; preserve numbers, identifiers, and
citations unchanged.
Every report ends with On the Horizon, even when it contains only a next
measurement suggestion. When the records have no usable signal, write
_No insights generated_; do not invent a conclusion to fill the report.
Workflow
- Set report language and state scope first. Use
en-USunless untrackedreport_languageconfiguration or an explicit agent instruction selects a language. Translate L1/L2 prose and headings only; preserve numbers, identifiers, and citations. Load the coverage manifest, record its time window, and list only sources whose status isavailable. Never infer absence of a behavior from an inaccessible, unsupported, auth-required, or not-found source. In bounded mode, say that coverage is partial before interpreting it. Generate L1 deterministically. Run:
python scripts/aggregate.py --bundle <bundle> --output <facets.json>The resulting JSON is the sole authority for L1 numbers. Narrate those values; never recount records in chat or estimate a percentage. See facet definitions.
- Build L2 candidates conservatively. Look for repeated work patterns, stated-goal versus observable-investment gaps, implicit assumptions, drift, friction, and repeatable-work candidates. Seek counter-evidence before retaining a candidate. Each retained blind spot needs at least two independent origins, not two copies, branches, summaries, or excerpts of one origin. Apply audit rigor.
Resolve before claiming. Put proposed claims and their citations in a JSON file, then run:
python scripts/audit.py --bundle <bundle> --claims <claims.json> --output <verified-claims.json>This drops claims with missing records, invalid locators, or fewer than two distinct origins. Do not restore a dropped claim in prose. Label each surviving statement as Observation, Inference, or Speculation; speculation may guide a question but is never evidence.
- Write safely. Before writing HTML or Markdown, ask the PII gate to check the exact output path. A tracked-or-unknown repository path is refused and redirected to an OS state directory. Never force-add an artifact. Keep raw paths, secrets, session IDs, and private text out of chat echoes.
- Close honestly. Summarize coverage, L1 facts, verified L2 findings (or
0 qualifying blind spots), recommendations, candidate rules/configs, and On the Horizon. Route a finding offered for candidate qualification to hoa-introspect-distill; route a direct request to create a defined skill from that finding to hoa-skill-work. Do not treat the audit as creation authorization or imply that distillation approval already occurred.
Guardrails
- This skill is heavyweight: run only after an explicit request, never as a side effect of retrieval, a session summary, or another skill.
- Coverage bounds every conclusion. The manifest is evidence of what was inspected, not proof about the operator's entire work history.
- L1 comes from the aggregator, not language-model counting. Preserve its zeroes and unknowns.
- The report language changes narrative and headings only; it never translates or reformats numbers, identifiers, or citations. See the bundle, facet, and audit references for their invariant machine-readable fields.
0 blind spotsis a successful result. No quota, no padding, no clinical or personality diagnosis.- A citation must resolve to a supplied record and its locator.
audit.pyenforces the mechanical minimum; independently inspect a small citation sample before publishing nuanced claims. - A configured extra source, MCP endpoint, and output override may come only from untracked configuration. Do not add personal locators to this package.
- Inputs are read-only. Do not modify agent stores, bundles, source records, or repository tracking state.
Bounded-mode wording
Use wording equivalent to: “This report is limited to the supplied/runtime- accessible records and cannot make claims about other agents or time periods.” The same two-independent-origin threshold applies; bounded mode lowers scope, not rigor.
Output shape
Use this report outline:
# Work-pattern self-report
## Coverage and caveats
## L1 — Usage panorama
## L2 — Evidence-cited audit
_No insights generated_ <!-- when no verified findings exist -->
## Recommendations and repeatable-work candidates
## On the HorizonThe at-a-glance chat response is short and redacted: coverage status, the most useful L1 fact, verified finding count, artifact availability, and one horizon item. Do not echo artifact paths, session IDs, secret-shaped values, or raw transcript text.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

