Anchor intake
Interrogate 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.From its SKILL.md
npx -y skills add lynxlangya/techne --skill anchor-intakeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- runs commandsInstructs the agent to run 3 commands, including `python3 skills/anchor-intake/scripts/intake_gate.py init --project <root> --plan <slug> --brief-file <path>` and 2 more.
SKILL.md
5.2 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
anchor-intake
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.
What ships with it: 5 files
71.8 KB alongside SKILL.md, 1 of them executable
scripts/
- intake_gate.pyruns47.3 KB
- eval.md6.8 KB
- README-CN.md3.6 KB
- README.md3.8 KB
- reference.md10.3 KB
Gives 0 of the 12 instructions most plan spec skills give in ~1.2k tokens
Counted across 1,360 of the 2,617 authors here whose files we hold, read 2026-09-06
- Ask one question at a timein 73 of 1360
- Write the spec using the templatein 22 of 1360
- Ask clarifying questions if neededin 19 of 1360, across 18 files
- Wait for user confirmation before proceedingin 19 of 1360
- Save plans to the plans directoryin 17 of 1360, across 13 files
- Check for product marketing context firstin 16 of 1360, across 5 files
- Read the plan file completelyin 16 of 1360
- Order tasks by dependencyin 16 of 1360
- Gather context from the conversationin 15 of 1360, across 9 files
- Explore the codebase instead of askingin 15 of 1360, across 13 files
- Wait for explicit user approvalin 14 of 1360, across 13 files
- Quiz the user on the breakdownin 13 of 1360, across 7 files
Said here and by no other author read
- Capture the brief verbatim before starting work
- Read the brief in full
- Account every fixed rubric element
- Surface traps and conflicts
- Ask only dependent questions
- Author intent-level steps
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.