SKILLS
Health Warn
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
A collection of original skills independently designed and developed by Anna Tchijova, grounded in scientific methodology and established engineering best practices.
SKILLS — Engineering Discipline Skill Set
Language: English · Español
A collection of 89 skills that encode disciplined software engineering, forensic reasoning, and security-first construction — for Claude Code, Codex, Kimi, and other AI coding agents. In Claude Code, each skill activates automatically when the conversation matches its trigger conditions, injecting methodology without requiring the user to ask for it. Agents without that auto-trigger mechanism can still use the same skills: point an AGENTS.md or system prompt at the relevant SKILL.md files, or load one directly as context when its trigger conditions apply — the methodology in each file is agent-agnostic even where the loading mechanism isn't.
These skills form a coherent system built on Charles Sanders Peirce's triadic semiotics and the abductive inference loop (abduction → deduction → induction). They cover the full engineering lifecycle: investigation, construction, patching, testing, auditing, and hardening.
Skills
| # | Skill | Category | Activates when |
|---|---|---|---|
| 1 | abductive-engineering |
Core reasoning | Debugging, root-cause analysis, incident response, or architectural decisions under uncertainty. |
| 2 | red-team-auditing |
Core reasoning | Security audits, adversarial review, threat modeling, or invariant analysis. |
| 3 | secure-by-construction |
Core reasoning | Writing, extending, refactoring, or reviewing code with security boundaries. |
| 4 | software-archaeology |
Core reasoning | Modifying legacy, inherited, or unfamiliar code without breaking behavior. |
| 5 | diagnosing-bugs |
Core reasoning | Investigating hard bugs and performance regressions through controlled probes and regression tests. |
| 6 | codebase-health-assessment |
Core reasoning | Classifying dead, fossil, live, and out-of-scope modules before changing a codebase. |
| 7 | reverse-engineering |
Core reasoning | Reconstructing undocumented systems, binaries, protocols, file formats, or opaque APIs without readable source. |
| 8 | daubert-defensible-writing |
Core reasoning | Writing findings and reports that separate evidence, inference, uncertainty, and opinion. |
| 9 | deterministic-core |
Determinism & integrity | Producing bit-for-bit reproducible and tamper-evident decisions with canonical serialization and SHA-256 sealing. |
| 10 | llm-out-of-the-loop |
Determinism & integrity | Keeping consequential decisions outside the LLM path and sealing results before optional narration. |
| 11 | tamper-evident-audit-chain |
Determinism & integrity | Building or verifying append-only logs that detect alteration, insertion, reordering, or deletion. |
| 12 | atomic-state-mutation |
Determinism & integrity | Making multi-write persistent operations all-or-nothing and isolated from concurrent callers. |
| 13 | versioned-schema-evolution |
Determinism & integrity | Evolving serialized artifacts with explicit schema versions without breaking existing data. |
| 14 | surgical-patcher |
Patching & editing | Applying anchored, verified, reversible changes instead of rewriting entire source files. |
| 15 | audit-before-patch |
Patching & editing | Validating an audit finding against the current file before changing any code. |
| 16 | validate-at-the-boundary |
Input & data | Validating untrusted input at the system boundary with clear errors. |
| 17 | honest-degradation |
Input & data | Handling degraded, legacy, reconstructed, or unverifiable input without returning plausible-looking wrong results. |
| 18 | sql-aggregation-not-materialization |
Input & data | Pushing counts, sums, and grouping into the database instead of loading rows into memory. |
| 19 | git-discipline |
Process | Keeping AI-assisted coding sessions recoverable, reviewable, and free from unsafe history rewriting. |
| 20 | claim-provenance-discipline |
Evidence governance | Preserving each claim's origin, epistemic level, scope bound, and falsifier across summaries and handoffs. |
| 21 | attack-surface-triage |
Adversarial validation | Enumerating an authorized target's surface into a reproducible, falsifiable candidate queue — before any payload. |
| 22 | purple-team-exercise |
Adversarial validation | Turning each technique into a detection hypothesis, detonating it minimally and marked, and measuring what the blue side saw. |
| 23 | detection-engineering |
Adversarial validation | Turning a detection requirement into a tested, budgeted, versioned rule — with a benign twin that must not fire. |
| 24 | agent-trust-boundaries |
Agent architecture | Keeping retrieved content as data, tool authority in deterministic policy, and the untrusted/private/egress trifecta broken. |
| 25 | falsifiable-testing |
Verification | Writing tests that can actually fail — red first, negative controls, oracle strength, and flakes treated as findings. |
| 26 | incident-timeline-reconstruction |
Evidence governance | Ordering events across clock domains, separating recorded from actual time, and labeling every gap by kind. |
| 27 | irreversible-action-gate |
Process | Classifying actions by reversibility and blast radius, then gating them with preview, count assertion, and a written undo plan. |
| 28 | dependency-provenance |
Supply chain | Knowing what is actually shipped, establishing package identity before trust, and treating advisories as candidates until reachability is shown. |
| 29 | secret-lifecycle-discipline |
Credentials | Treating credentials as a lifecycle — redaction at the boundary, rotation rehearsed before it is needed, rotate-first on exposure. |
| 30 | decision-record-discipline |
Process | Capturing forces, rejected alternatives, load-bearing assumptions, and revisit triggers while the context still exists. |
| 31 | concurrency-reasoning |
Core reasoning | Reasoning about shared mutable state, invariants, and happens-before ordering instead of adding a lock and hoping. |
| 32 | forensic-logging-design |
Evidence governance | Deciding what to record today so tomorrow's reconstruction is possible — decisions, correlation, and legible silence. |
| 33 | invariant-hunting |
Core reasoning | Hunting violations of a declared or implied security invariant across a transition — a property established at T0 that a later state change must preserve. |
| 34 | beyond-the-sink |
Core reasoning | An investigation stalls — looking past the sink-grep keyword list, the exhausted question family, or a single implementation when the obvious layer is dry. |
| 35 | discriminating-proof |
Verification | Turning a plausible hypothesis into an earned verdict with the cheapest experiment that can kill it — binary oracle, canary value, negative control. |
| 36 | forensic-persistence |
Core reasoning | A hunt, audit, or debug session returns zero findings, hypotheses keep getting refuted, or a target looks too hardened to continue. |
| 37 | oracle-driven-fuzzing |
Verification | Bugs must be found by generated input — property-based, structure-aware, differential and metamorphic oracles, corpus discipline, shrinking, and crash triage. |
| 38 | parser-differential-hunting |
Adversarial validation | Two components read the same bytes and disagree — the checkpoint decides on one meaning while the sink acts on another. |
| 39 | authorization-surface-mapping |
Adversarial validation | Building the actor × resource × action matrix and testing the cells nobody wrote a test for — because a missing check looks like nothing. |
| 40 | assume-breach-modeling |
Adversarial validation | A position is already held — mapping what that identity reaches, and finding the choke point whose removal cuts the most paths. |
| 41 | resource-exhaustion-review |
Input & data | A small input buys a large amount of work or memory — asymmetry ratios, unbounded allocation, super-linear algorithms, missing backpressure. |
| 42 | remediation-driven-reporting |
Adversarial validation | Writing the report so the class gets fixed, not the instance — surviving triage, severity scored to demonstrated impact, and verifying the patch against the class. |
| 43 | finding-custody |
Evidence governance | A confirmed finding after it is reported — instance vs class vs method, the patch-diffing window, custody of the PoC, and a disclosure decision with a revisit trigger. |
| 44 | data-leakage-hunting |
Machine learning | The one bug class whose symptom is a better score — evaluation data reaching the model through preprocessing, time, groups, duplicates, or a spent test set. |
| 45 | training-run-provenance |
Machine learning | Determinism where it is achievable — the artifact, not the process: a sealed manifest, named nondeterminism, and a reproducibility claim at the rung the evidence supports. |
| 46 | model-evaluation-discipline |
Machine learning | An evaluation that can actually fail — mandatory baseline, interval instead of point estimate, worst slice instead of mean, and negative controls. |
| 47 | training-serving-parity |
Machine learning | The features a model was trained on are not the features it is served — two implementations of one computation, and the silent default that answers confidently on a vector never seen. |
| 48 | beyond-the-fix |
Core reasoning | Auditing the fixes themselves — a patch proves someone knew something was wrong there, never that it is now right; eight ways a fix falls short, and the pre-fix control that tells them apart. |
| 49 | dual-use-behavior-adjudication |
Security operations | Deciding malicious vs benign when the tool itself is legitimate — the living-off-the-land problem, where the verdict lives in provenance, baseline, and sequence, never in the artifact. |
| 50 | threat-attribution-restraint |
Security operations | Resisting the pull to name an actor — every overlap that points at APT-X is contact between datasets, not identity of hands, and most of it is cheap to plant. |
| 51 | credential-material-triage |
Credentials | Turning "we found a credential" into a finding — what it authenticates as, authorizes, for how long, and how to revoke it, without inflating a hash into a compromise. |
| 52 | cloud-control-plane-reasoning |
Security operations | Reasoning about cloud compromise on the identity and control-plane graph, not the network diagram — where a stolen key is one AssumeRole from the whole account. |
| 53 | untrusted-sample-handling |
Security operations | Examining a hostile artifact safely — never let it execute where it can reach anything real, never confuse what it can do with what it was aimed at. |
| 54 | exploitability-triage |
Security operations | CVSS is not risk — a vulnerability is a candidate until the vulnerable code is shown reachable, reached by attacker input, and exploitable given the mitigations actually present. |
| 55 | hypothesis-driven-hunting |
Security operations | A threat hunt is a falsifiable hypothesis, not a keyword sweep — state before you query what would refute it and what "found nothing" really proves. |
| 56 | intel-source-evaluation |
Security operations | Grade the source and the indicator before acting — an IOC is a claim with a shelf life; auto-actioning ungraded intel blocks benign traffic and burns trust. |
| 57 | traffic-as-evidence |
Security operations | Network traffic is evidence under encryption and base-rate limits, never a verdict — beaconing and fingerprints are weak signals whose meaning lives in baseline. |
| 58 | alert-triage-economics |
Security operations | Analyst attention is the scarce resource — triage by expected loss, not the severity label; the queue that trains dismissal is the real vulnerability. |
| 59 | container-trust-boundary |
Security operations | A container is isolation, not a security boundary — the real perimeter is the shared kernel, the image provenance, and the orchestration identity it holds. |
| 60 | containment-under-uncertainty |
Security operations | Contain before scope is known, in reversible-vs-irreversible moves — acting tips off the adversary, waiting lets the bleed continue; never let "unsure" become "nothing". |
| 61 | acquisition-order-of-volatility |
Evidence governance | Collect in order of volatility or destroy what you came for — memory and network state evaporate on reboot, and the act of collecting alters the scene. |
| 62 | pipeline-trust |
Supply chain | CI/CD runs attacker-influenceable code with production credentials — the build is a privileged execution environment, not config, and rarely in the threat model. |
| 63 | zero-trust-as-a-claim |
Security operations | "Zero trust" is a per-request property to verify, not a product — find the implicit trust that survives: a flat network, a mesh that authenticates but never authorizes. |
| 64 | recovery-integrity |
Security operations | A backup you have not proven restorable and untampered is a hope, not a recovery — and it usually sits inside the blast radius with the same credentials. |
| 65 | control-effectiveness-vs-existence |
Verification | A control that exists is not a control that works — compliance attests presence, security requires resistance to the threat the control names. |
| 66 | crypto-misuse-reasoning |
Cryptography | The danger is the misuse, not the algorithm — "we use AES" says nothing; the breaks are nonce reuse, ECB, unauthenticated ciphertext, a homemade KDF, a downgrade. |
| 67 | social-engineering-plausibility |
Security operations | A human-trust exploit is not fixed by a technical control — the target made a reasonable call on manufactured context; move the defense to the process, not the person. |
| 68 | deception-signal-quality |
Security operations | A decoy earns its keep only if nothing legitimate ever touches it — engineer the honeytoken so a trigger is a true positive by construction, the inverse of a noisy alert. |
| 69 | ot-safety-first-threat-model |
Security operations | OT inverts the triad — availability and physical safety first, where patching or scanning can halt a process or hurt someone; do not import IT reflexes unchecked. |
| 70 | client-side-trust-boundary |
Security operations | Code and data on a device the user controls belong to the adversary — a client-side check, secret, or obfuscation is a suggestion, not a control; re-make every decision server-side. |
| 71 | root-of-trust-reasoning |
Determinism & integrity | You cannot verify a system from inside it — a compromise below your vantage point controls what you see; anchor integrity to a root below the layer that could lie. |
| 72 | data-provenance-mapping |
Evidence governance | You cannot delete, protect, or scope a breach of data whose real flow you never mapped — the forgotten copy in a log, a backup, or a vendor is the failed DSAR. |
| 73 | variant-analysis |
Adversarial validation | A known bug (CVE/advisory/fix commit) or one you just found — extract the violated invariant, hunt the same class across shared deps and sibling sinks, and settle dedupe and fix-coverage before filing. |
| 74 | dont-fall-in-love-with-the-bug |
Adversarial validation | A finding reproduces and is about to be written up — the gate that makes you earn the report: root cause, variant sweep, bypass-the-fix, blast radius, and severity against a named comparable. |
| 75 | frontend-accessibility-by-construction |
Frontend & UX | Interactive components built operable and perceivable by construction — native HTML and keyboard operability first, ARIA only where HTML has no equivalent, never as a patch. |
| 76 | non-overwhelming-ux |
Frontend & UX | Cognitive, sensory, and choice load in a flow — grounded in WCAG 2.2/COGA, useful for every user under stress or divided attention, not only neurodivergent ones. |
| 77 | resilient-ui-states |
Frontend & UX | Loading/success/empty/error are all mandatory states, none optional — scoped error boundaries, specific messages, and form validation that never discards user input. |
| 78 | frontend-component-boundaries |
Frontend & UX | Component boundaries by cohesion, behavior, semantics, reuse, and shared reason to change — not a mechanical "one responsibility" rule that fragments ceremonially. |
| 79 | frontend-performance-budgets |
Frontend & UX | Outcome metrics (LCP/INP/CLS) traced to their causal resource budget (JS shipped, images, fonts, third parties, hydration) — set before the fact, not measured after. |
| 80 | frontend-testing-strategy |
Frontend & UX | Testing Trophy allocation (static > unit > integration > E2E) and assertions on what the user perceives — role/label selectors, never internal state. |
| 81 | cloud-architecture-selection |
Process | Derive infrastructure from hard constraints and required capabilities, never from brand popularity — select capabilities before products, and never treat a price/SKU/limit as permanent truth. |
| 82 | writing-agents-md |
Process | An AGENTS.md that changes behavior — falsifiable invariants with a named enforcement mechanism and a specific "why," grounded in this repo's real incidents, not a generic checklist any repo could have. |
| 83 | distributed-write-atomicity |
Determinism & integrity | When two effects can't share a transaction, design the intermediate state, redelivery, and deduplication explicitly — outbox pattern, layered delivery/processing/business-effect guarantees, idempotency keys enforced by a unique constraint, not an application check. |
| 84 | live-contract-compatibility |
Determinism & integrity | Can producer/consumer vN and vN+1 coexist while both are live? Expand -> Migrate -> Contract gated by traffic evidence, never by elapsed time; protobuf field-number identity; exhaustive matches need a default arm. |
| 85 | progressive-technical-disclosure |
Process | Order a README/hackathon submission by reader cognitive dependency (problem -> mental model -> behavior -> differentiator -> mechanism -> evidence -> depth), not architectural importance — never delete technical depth, route it to a Technical README. |
| 86 | destination-driven-construction |
Process | Build toward a chosen ambitious product in coherent levels, each carrying the invariants it will need later from the start — never suggest MVP-shaped scoping unless asked; per-level adversarial review, integrated testing only at the time horizon. |
| 87 | debt-closure-discipline |
Process | Priority determines resolution order, not permission to accumulate indefinitely — every known issue ends resolved, explicitly rejected with a reason, or documented as still-open; "documented" is not "resolved." |
| 88 | honest-technical-oratory |
Process | Present a project out loud under a real time limit — no exaggeration ("fatal errors" per YC), no caveat-first opening, plain language calibrated to the audience without becoming false, "I don't know" over an improvised answer in Q&A. |
| 89 | language-selection |
Process | Select a language, DSL, query/policy language, or proof system from the problem's concrete forces, never from model familiarity or the human's prior exposure — the model expands the candidate space (including languages the human has never used), the human owns the trade-off; tie-breakers weigh total maintenance cost under actual agent assistance, not raw prior syntax fluency. |
Frontend / UX perception loop
Six skills, one question each, ordered as a human actually meets an interface
— from "can I perceive and operate it" to "can we prove it behaves the way
the user perceives it":
HUMAN / SYSTEM INTERFACE
│
├── frontend-accessibility-by-construction
│ └── can it be perceived and operated?
│
├── non-overwhelming-ux
│ └── can it be understood, and can the task be sustained?
│
├── resilient-ui-states
│ └── does the user know what state the system is in?
│
├── frontend-component-boundaries
│ └── does the implementation preserve coherent units?
│
├── frontend-performance-budgets
│ └── does the technical cost violate the promised experience?
│
└── frontend-testing-strategy
└── can we prove the behavior the user perceives?
None of the six duplicates client-side-trust-boundary orvalidate-at-the-boundary — those two govern trust and input validation;
this loop governs perception, load, state legibility, structure, cost, and
proof, for a user who is assumed honest.
Adversarial validation loop
attack-surface-triage opens the loop and red-team-auditing is the
confirmation step; the hunting skills feed candidates in, and the impact and
containment skills carry a confirmed finding back out to the blue side:
attack-surface-triage → ranked candidates
│
┌──────────────────────────┼──────────────────────────┐
│ where candidates come from (the hunt) │
│ invariant-hunting · parser-differential-hunting │
│ authorization-surface-mapping · beyond-the-sink │
│ oracle-driven-fuzzing · resource-exhaustion-review │
│ beyond-the-fix (the fix history is the map) │
└──────────────────────────┼──────────────────────────┘
▼
discriminating-proof → red-team-auditing → confirmed / refuted
│ │
│ forensic-persistence (refuted → next axis)
▼
assume-breach-modeling → impact, choke points, containment
▼
purple-team-exercise → detection gaps
▼
detection-engineering → proven rule → (retest closes the loop)
when the target is someone else's:
remediation-driven-reporting → the class gets fixed, not the instance
finding-custody → what you did NOT say, and what reopens the decision
Everything on the offensive side of this library exists to produce a defensive
artifact: a bound, a bulkhead, a generated negative test, or a rule that has
fired for the right reason.
The machine-learning seam
ML breaks three assumptions the rest of the library rests on: the test is a
metric rather than a pass/fail, the data is the real program, and the
highest-severity bug class raises the score. Skills 44–47 restore them, and
they meet deterministic-core at a specific boundary:
training run → frozen artifact → inference → decision
nondeterministic hashed, immutable deterministic exact
training-run- the seam same artifact deterministic-core
provenance + input applies unmodified
↑ ↑ ↑
data-leakage-hunting training-serving-parity model-evaluation-discipline
(is the number real?) (is the served input (is the number a
the trained input?) measurement?)
Determinism does not stop being reachable in ML — it stops being reachable
upstream of the artifact. Everything downstream is held to the same standard
as any other consequential output path here.
Repository Structure
Each skill lives in its own directory and is a single self-contained file:
<skill-name>/
SKILL.md # YAML frontmatter (name + description) followed by the full methodology
The description field is the trigger surface — it must name the situations,
phrasings, and artifacts that should activate the skill, and it must stay under
1024 characters. The body is loaded only once the skill triggers.
Most skills ship only SKILL.md. A skill may add a references/ subdirectory
for long reference material that should not sit in the always-loaded body (e.g.language-selection/references/candidate-index.md, a lookup table consulted
only when surfacing candidates, not required reading); add scripts/ similarly
if a future skill needs executable helpers.
Design Principles
- No LLM in the decision path. Consequential outputs are sealed deterministically before any model is called.
- Abduction before deduction. Every diagnosis generates a falsifiable hypothesis, derives a testable prediction, and confirms or refutes it against the real system.
- Eco's razor. Before acting on any hypothesis, attempt to refute it. A refuted hypothesis is a result, not a failure.
- Honest degradation over false confidence. Three states, not two: PASS / WARN / FAIL. ABSTAIN is a valid verdict.
- Surgical patching over rewriting. Regenerating a file from memory is the largest source of silent regressions.
- Never trust a green you have not seen red. A test — or a detection rule — that has never failed for the right reason measures nothing.
- Authority comes from the channel, not the content. Retrieved documents, tool output, and other agents' summaries are data; none of them can grant themselves permission.
- Proportional gates before irreversible actions. Preview the exact targets, assert the expected count before seeing it, and write the undo plan before acting — not after.
- Red exists to produce blue. A confirmed finding is not the deliverable; the bound, the bulkhead, the generated negative test, and the detection requirement are.
- You cannot grep for an absence. Missing checks, unenumerated cells, and unstated limits are invisible in a diff — they are found by enumerating what the system claims to enforce and testing the gaps.
- A finding is not finished when it is patched. The instance dies with the fix; the class does not. Reporting, custody, and the decision not to publish all have their own discipline.
- A result that looks too good is a bug report. In every other domain a defect makes something fail; leakage makes everything look better, so the alarm has to be inverted.
- A fix proves the past, not the present. That someone fixed it means they fixed that, and nothing else — the patched file is the least-reviewed code in the repository and the likeliest place for the next bug.
Related
- vigia-intent-analysis — VIGÍA forensic intent analysis engine (SANS FIND EVIL Hackathon 2026). These skills encode its engineering invariants.
┌─────────────────────────┐
│ INQUIRY / REASONING │
│ │
│ abductive-engineering │
│ diagnosing-bugs │
│ software-archaeology │
│ reverse-engineering │
│ invariant-hunting │
│ concurrency-reasoning │
│ beyond-the-sink │
│ beyond-the-fix │
│ forensic-persistence │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ ADVERSARIAL VALIDATION│
│ │
│ attack-surface-triage │
│ red-team-auditing │
│ discriminating-proof │
│ authorization-surface │
│ parser-differential │
│ oracle-driven-fuzzing │
│ assume-breach-modeling │
│ purple-team-exercise │
│ detection-engineering │
│ falsifiable-testing │
│ remediation-reporting │
└────────────┬────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
INTEGRITY TRUST / DATA EVIDENCE
deterministic validate-boundary provenance
audit-chain honest-degradation timeline
atomic mutation secret lifecycle logging
schema evolution dependency provenance decision records
resource exhaustion
│ │ │
└───────────────────┼───────────────────┘
▼
CONSTRUCTION / CHANGE
│
secure-by-construction
surgical-patcher
audit-before-patch
git-discipline
irreversible-action-gate
MACHINE LEARNING
(the same discipline, where the
test is a metric and the data
is the program)
data-leakage-hunting
training-run-provenance
model-evaluation-discipline
training-serving-parity
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found