factory-intent
Skill145 starsChanged 20 days agoMITView on GitHub
Use when orchestrating an intent lifecycle (product + architecture lanes, two scope-pinned gates, joint build-and-verify) to generate PRD.md and AD.md from one Mission Brief.
In this repository48 other files it gives its agents.
- architect-analyzeSkill
- architect-bootSkill
- architect-clarifySkill
- architect-implementSkill
- architect-initSkill
- architect-specifySkill
- writing-skillsSkill
- change-bootSkill
- change-clarifySkill
- change-initSkill
- change-publishSkill
- change-specifySkill
- evals-analyzeSkill
- evals-clarifySkill
- evals-implementSkill
- evals-initSkill
- evals-specifySkill
- evals-validateSkill
- factory-cleanSkill
- factory-initSkill
- factory-learnSkill
- factory-missionSkill
- factory-orchestratorSkill
- factory-queueSkill
- factory-releaseSkill
- factory-reviewSkill
- factory-runbookSkill
- factory-setupSkill
- factory-ticketsSkill
- mission-briefSkill
- product-analyzeSkill
- product-bootSkill
- product-clarifySkill
- product-implementSkill
- product-initSkill
- product-roadmapSkill
- product-specifySkill
- team-bootSkill
- team-constitutionSkill
- team-diagnoseSkill
- team-discoverSkill
- team-initSkill
- team-levelupSkill
- team-repairSkill
- team-setupSkill
- team-skillsSkill
- workspaceSkill
- tech-radar-bootSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is 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.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Only this orchestrator invokes the publish sequence, and only through the runbook.
- Very specific: line 47
When the brief needs one lane only, run that lane's entry workflow instead of the both-lanes workflow.yml:
≈ “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
factory-intent
In a factory run — read this first
When ADLC_RUN_ID is set, the workflow engine runs this step unattended and a gate follows it. Invoke the factory-runbook skill for the publish sequence (run branch → step commits → draft MR, plus the run-context rules); run the lifecycle steps the DAG resolves for the issue in between.
Never ask for approval or wait for an answer. The engine's gate after this step is the approval. Before you return, always: write mr_url and a one-line conclusion into ADLC_STEP_OUTPUT, whatever the outcome.
Only this orchestrator invokes the publish sequence, and only through the runbook; lifecycle skills never do. Details: Run Branch, Step Commits and Draft MR.
What this skill does
factory-intent orchestrates the intent lifecycle over two lanes. It
coordinates the product lifecycle skills (product-init, product-specify,
product-clarify, product-implement, product-analyze) and the
architecture lifecycle skills (architect-init, architect-specify,
architect-clarify, architect-implement, architect-analyze) to maintain
a consistent PRD.md and AD.md from a single Mission Brief.
It operates as a Kind-A DAG orchestrator in alignment with the shared
executor engine contract in factory-runbook/references/executor.md. It
replaces the twin orchestrators with one two-lane DAG — no aliases.
When to use
- You want to capture product requirements and architecture decisions end-to-end from one intent, each signed at its own gate.
- You want a guided, accept-gated, verified definition process with a resume checkpoint.
When NOT to use:
- For software implementation task execution (use
factory-missioninstead). - For single-lane follow-ups already past intent (invoke the lane skill directly).
Single-lane runs (lane activation)
When the brief needs one lane only, run that lane's entry workflow instead
of the both-lanes workflow.yml:
- Product only →
workflow-product.yml(specify→clarify→gate-decisions→build-and-verify, product commands, PDR-scoped gate). - Architecture only →
workflow-architecture.yml(same shape, architecture commands, ADR-scoped gate).
Each entry mirrors the removed twin's step shape with the gate-context
contract (records/since/link); the adaptive executor resolves its route
input at dispatch the same way.
Lifecycle DAG & Step Resolution
factory-intent implements a fixed named-skill DAG (fixed step resolution)
with one step per lane per phase:
Greenfield Route (default on empty project)
product-specify/architect-specify(generate) — capture drafts in.adlc/drafts/pdr/and.adlc/drafts/adr/.product-clarify/architect-clarify⭐ (clarify) — quality checks; each lane marks its own drafts accepted at its own gate.gate-product-decisions/gate-architecture-decisions— separate scope-pinned human gates. Neither gate can accept the other lane's artifacts; a lane blocked at its gate does not block the other lane's drafting — only the joint implement waits for both gates.build-and-verify— joint implement (product-implement,architect-implement) then joint analyze (product-analyze,architect-analyze).
Brownfield / Refresh Routes
Per-lane route inputs (product_route, architecture_route) select
greenfield / brownfield (init) / refresh (analyze-first) independently —
one lane may refresh while the other runs greenfield. The adaptive (LLM)
executor resolves the routes at dispatch (choosing init vs specify vs
analyze-first for each lane); the checked-in workflow.yml below encodes the
greenfield default (specify lanes) for headless execution.
Boundary & Tiebreak
Product decides WHAT / WHY / FOR WHOM (problem, persona, scope, priority,
business metrics, NFR targets). Anything answering HOW (stack, pattern,
interface, NFR mechanism) is recorded as a handoff note to the architecture
lane, never as a product decision. Overlap disputes escalate to a named
human; the ruling is posted to the comment bus as a decision output
(human tiebreak — no auto-resolution). The adaptive executor must not run
the joint implement until the human ruling lands (the checked-in
workflow.yml encodes the greenfield two-gate default; the tiebreak wait is
enforced at dispatch, not by a gate in that file).
Shared Executor Overrides
- Publish Target: Fixed to
local(docs/adlc/memory/+ PRD/AD). - Output Types:
specify/init→draft;clarify⭐ →decision;implement→artifact-ref;analyze→findings. - Correction Loop: per-lane HIGH/CRITICAL routes that lane back to its
clarify, bounded by
max_corrections(default 2); if exceeded, halt for human review. (Adaptive executor behavior — the checked-inworkflow.ymlheadless loop below is a bounded re-implementation only.) - Supervision Default:
hybrid— human gates at both clarifies and at final review. Merge sign-off is always human. - Pre-flight Check: Verifies both
product-*andarchitect-*lifecycle skills are installed before beginning Phase 0.
Run Branch, Step Commits and Draft MR
Requires: the factory-runbook skill (provides the publish procedure and run contracts): adlc-cli skills add tikalk/adlc-team-skills --skill factory-runbook
In a factory run (ADLC_RUN_ID set by the workflow engine) this orchestrator — and only it, never the lane lifecycle skills — commits, pushes the run branch and opens the draft MR. Invoke the factory-runbook skill for the publish sequence with:
- Branch:
factory/intent/<repo>-<iid>(fromADLC_ISSUE_REF) — shared by both lanes and with re-dispatches; continues fromorigin. - Step commits (
specify/init,clarify,implement,analyzefixes): every path the step wrote, moved or deleted (a promoted draft's old path too), restricted to the lifecycle write allowlists (.adlc/drafts/pdr/,docs/adlc/memory/pdr/,docs/adlc/product/PRD.md,.adlc/product/sections/,.adlc/product/state.json,.adlc/drafts/adr/,docs/adlc/memory/adr/,docs/adlc/architect/AD.md,docs/adlc/architect/views/,.adlc/architect/state.json). Put the returnedshain the step's bus marker (the bus carries pointers, not content). Never stage.adlc/workflows/**. - Draft MR + conclusion: Call it whatever the outcome — even when nothing was committed (
sha: none, an analyze-only pass): with no commits on the run branch it opens nothing and the gate shows there is nothing to review. In a factory run the engine's gate after this step is the approval: do not ask for approval yourself — finish the steps the issue needs, state the conclusion and return.
Outside a factory run the runbook helpers do nothing unless the user opted in (adlc.commit_steps: true in .adlc/init-options.json, or --commit passed to this skill and forwarded); a helper's non-zero exit (refused path, missing committer identity, tracker scope) stops the run — report it, do not work around it.
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.

