Factory entry
Personal Claude Code factory — synthesized cross-build skills, specialist subagents, and slash commands. Phase 0.
npx -y skills add nonlinear-xyz/factory-kit --skill factory-entryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Load a Linear issue into context and enter plan mode for a focused session
SKILL.md
3.3 KB, as published. Nobody here has run it
You're starting a focused work session on a single Linear issue. Load its context, summarize it, and enter plan mode so the user can sign off before you start coding.
Invocation input: the issue identifier. Accept either the full form (NON-45) or just the number (45). If numeric, prepend the team key from the project configuration.
What to do
-
Read project configuration. Prefer
.factory-kit/linear.json; use legacy.claude/linear.jsononly as a migration fallback. If neither exists, stop and direct the user to the setup-linear workflow. PullteamKeyfor ID resolution. -
Resolve the identifier. If the invocation input is numeric, construct
<teamKey>-<num>(e.g.,45→NON-45). If already inKEY-NNform, use it as-is. -
Fetch the issue through the connected Linear integration. Include comments and linked sub-issues if available.
-
Fetch the project through the Linear integration if the issue belongs to one and you haven't loaded it yet this session.
-
Check blockers. If the issue has open
blockedByrelations, list them and warn loudly before proceeding. Ask whether the user wants to continue or pick a different ticket. -
Summarize for context (≤ 250 words). Use this shape — bold labels, short lines, omit any section that's empty:
- Issue:
<KEY-N> — title+ priority + current state - Outcome: one sentence on what "done" observably looks like. If the issue lacks a clear outcome, say so — that's the first thing to fix.
- Scope: the unchecked acceptance criteria / open checkboxes
- Encoded constraints: anything in the description or comments that locks an approach — name the underlying force (compliance, perf budget, prior decision), not just the rule
- Customer voice: if user feedback is quoted in the issue or linked, surface the raw words — don't paraphrase
- Open design calls: "decide during build" items worth resolving up front
- Context graph: parent, sub-issues, blockedBy/blocks, linked PRs, design docs — IDs + titles only. This is the issue's place in the wider decision graph; if it looks isolated, flag it as a yellow flag.
- Issue:
-
Flag issue quality (brief — one line if everything is fine). Linear's house style is: short title with a concrete outcome, body only as long as needed. If the issue is missing a clear outcome, written as a user story, or sitting orphaned with no context links, name it. Don't fix it silently — surface it so the user can decide whether to rewrite before designing the change.
-
Enter planning mode. Use the host's planning capability when available. Otherwise, present the implementation plan in chat and stop for explicit approval. Do not start coding before approval.
Style
Follow factory-voice.md. The reader is you, two minutes from now, about to design the change — give yourself what you'd need to make calls. Surface non-obvious constraints (invariants, prior decisions, blocking relations) at the top, not buried. No marketing copy, no hedging. If a constraint locks the design, name the principle behind it, not just the rule.