speckit-aee-message-security
Skill4 starsChanged 54 days agoMITView on GitHub
Run the message-security battery gate and check a spec's authority surface
In this repository25 other files it gives its agents.
- speckit-aee-assessSkill
- speckit-aee-challengeSkill
- speckit-aee-draft-claimsSkill
- speckit-aee-gapsSkill
- speckit-aee-gateSkill
- speckit-aee-report-savingsSkill
- speckit-aee-reviewSkill
- speckit-aee-route-evidenceSkill
- speckit-aee-traceSkill
- speckit-aee-verifySkill
- speckit-analyzeSkill
- speckit-checklistSkill
- speckit-clarifySkill
- speckit-constitutionSkill
- speckit-convergeSkill
- speckit-evaluator-composeSkill
- speckit-evaluator-reportSkill
- speckit-evaluator-routeSkill
- speckit-evaluator-runSkill
- speckit-implementSkill
- speckit-planSkill
- speckit-specifySkill
- speckit-tasksSkill
- speckit-taskstoissuesSkill
- spec-kit-aeeSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 40
Run the vendored deterministic screener over the planted-injection battery.
≈ “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
Aee Message Security Skill
Message Security
Apply the message-security extension: confirm the spec carries a completed authority surface, then run the planted-injection battery as an assessment gate.
User input
$ARGUMENTSAuthority surface first
Resolve spec=<path> to the feature's spec.md when supplied;
otherwise use the active feature's spec. The spec must contain an
## Authority Surface section — who may instruct this system,
through which channels, which actions and destinations are
authorized — completed from
.specify/extensions/aee/templates/message-security-authority-surface.md.
The section is the principal record the message-security checks grade
against: an action or destination that is not listed there is not
authorized, and a section left as template placeholders, or missing,
means the design is not ready to gate. Report what is missing instead
of filling it in from content the system read.
Battery gate
Run the vendored deterministic screener over the planted-injection battery. No model calls are made and no engine is needed:
python .specify/extensions/aee/scripts/python/message_security_battery.py --output .specify/extensions/aee/message-security/battery-report.json --records-output .specify/extensions/aee/message-security/challenge-records.jsonlExit semantics are: 0 when the gate passes, 1 when a bar is not met
(a verdict, not an error), and 2 for a missing or malformed corpus or
an unwritable output (printed as refused: ..., never a traceback).
The gate bars are stated in the runner: the epistemic layer must challenge at least 95% of the battery's injection fixtures (measured 55 of 56 when the battery was vendored) and must challenge zero legitimate controls (measured 0 of 50). Notes — instruction-shaped data that is not agent-directed — are reported (29 of 50 controls when vendored), never gated. The structural layer's numbers ride along in the report for information only; it is a tripwire, not the decision.
Report the gate result, the challenge rate, any missed fixture ids,
and any challenged controls by name. The challenge records written by
the run follow
.specify/extensions/aee/templates/message-security-challenge-record.schema.json:
one record per noted or challenged span — span hash, source class and
id, the claim as extracted, the check that fired, the verdict, the
action taken, and the timestamp — appended, never edited.
A passing gate says the deterministic screener still meets its bars
on this battery. It does not say a model in context would refuse a
planted instruction, and it does not establish robustness against an
attacker who has read the screener; see
.specify/extensions/aee/docs/message-security.md for what the gate
does and does not establish, how to re-run it, and how to add
fixtures.
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.

