anchor-intake
SkillDocs & knowledgeInterrogate a written engineering implementation brief before work starts. Use when a user brings a ticket, PRD, design note, or substantive engineering task brief and wants to begin implementation planning; force every fixed rubric element to be accounted, cite present/weak claims against the brief, surface gaps, solution-as-goal traps, contradictions, and questions, then emit an intent-level plan. Do not use for bare one-line requests, non-engineering artifacts, code diff review, bug fixing, or execution itself.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the anchor-intake skill
What this skill tells your AI
The instructions your AI receives, as published by lynxlangya/techne in skills/anchor-intake/SKILL.md and read by ahel’s review.
Force the skipped move before execution: interrogate the written brief against a fixed engineering implementation rubric, then plan only after gaps and weak assumptions are visible.
Trigger Check
Use this skill when the user provides a substantial written engineering implementation brief: a ticket, PRD, design note, or task brief with enough text to interrogate before work starts.
Do not use it for a bare one-line request, an already precise command, a
marketing brief, research proposal, prose draft, code diff review, bug fix, or
implementation execution. For unsupported or too-thin artifacts, self-eject in
one sentence and write no .techne/plan/<slug> output. If a captured artifact
later proves unsupported, use finalize --unscopable --reason ....
Boundary test: can you point to a user-authored written artifact and ask whether
it names the engineering goal, users, measurable success threshold, scope,
non-goals, inputs, data sources, dependencies, constraints, and acceptance
method? If yes, use anchor-intake. If no, eject or ask for the brief first.
Forced Procedure
- Capture the brief. Save the user-authored artifact verbatim. Run:
python3 skills/anchor-intake/scripts/intake_gate.py init --project <root> --plan <slug> --brief-file <path>. - Read the brief in full. Do not fill the rubric from memory or from the user's surrounding chat if the value is not in the captured brief.
- Account every fixed rubric element. For each of the ten elements, write
one disposition in
.techne/plan/<slug>/intake.json:presentwith citation andvalueItems,present-weakwith citation and a dependent question, orgapwith a question or visiblemodelDefault. - Surface traps and conflicts. Add span-anchored
solution-as-goalandcontradictionfindings whenever the brief implies them. Contradictions need two verified spans. - Ask only dependent questions. Every question must resolve an element or
finding and carry a
planDelta. Weak/gap questions must reference the weak span/value or the missing element label. - Author intent-level steps. Steps are not execution yet. Each step needs an
id,dependsOnAssumptions,dependsOnSteps,verifiableOutcome, and at least one terminal step reachable from a root step. - Check and repair. Run:
python3 skills/anchor-intake/scripts/intake_gate.py check --project <root> --plan <slug>. Fix structural failures by doing the missing intake work, not by padding JSON. - Finalize. Run:
python3 skills/anchor-intake/scripts/intake_gate.py finalize --project <root> --plan <slug>. Relay the generatedintakeReport.jsonto the user, especially gaps, weak elements, questions, solution-as-goal findings, contradictions, and warnings.
Script Contract
Artifacts are written under the target project:
.techne/plan/<slug>/
brief.txt # captured external artifact
context.json # computed by init
intake.json # authored by the reviewer/planner
report.json # computed by check
plan.json # computed by finalize
intakeReport.json # computed by finalize
Generated .techne/ output belongs to target projects. Do not commit it to this
repository.
Minimal intake.json shape:
{
"schema": "techne.intake/1",
"elements": {
"data-sources": {
"disposition": "gap",
"questionIds": ["Q1"]
}
},
"findings": [
{
"id": "S1",
"kind": "solution-as-goal",
"citation": {"offset": 16, "quote": "Build a Slack bot"}
}
],
"questions": [
{
"id": "Q1",
"text": "Which data sources should the implementation read?",
"resolves": ["data-sources"],
"planDelta": {"adds": ["Bind implementation to the named source"]}
}
],
"steps": [
{
"id": "s1",
"title": "Implement only the scoped behavior",
"dependsOnAssumptions": ["goal-and-why"],
"dependsOnSteps": [],
"verifiableOutcome": "The scoped behavior can be verified by the acceptance method",
"terminal": true
}
]
}
Use reference.md for the full JSON contract, fixed rubric, STOPLIST/RUBRIC-LABEL set, shape rules, warning semantics, and known weak spots.
Stop Conditions
- Stop before planning if there is no substantial written engineering brief.
- Stop before
finalizeifcheckreports blocking failures. - Stop and use
--unscopable --reasonif the artifact is not an engineering implementation brief or is too garbled/thin to interrogate honestly. - Stop before executing the work.
anchor-intakeends at a surfaced report and intent-level plan; implementation belongs to the next workflow step.
Signals
- GitHub stars
- 105
- Forks
- 18
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
anchor-intake- Source
- github.com/lynxlangya/techne