plugins/linear-spec-plugin/skills/architect/SKILL.md
Create the project-level implementation approach as a Linear Project Document. For code projects: technology stack, schemas, API contracts, system design. For non-code projects: delivery approach, document structure, resource plan. Adapts based on the project spec. Use after /ideate.
npx skillsauth add jaisonerick/spec-plugin architectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Your task: produce a comprehensive implementation approach document and write it to the deliverable's Linear project as a Project Document titled Architecture. This is the PROJECT-LEVEL architecture — it covers decisions shared across ALL specs/versions in this project. Individual specs get their own architecture documents via /architect-version.
This skill writes to Linear via the bundled scripts in ${CLAUDE_PLUGIN_DIR}/scripts/linear/. They require LINEAR_API_KEY in the environment. If it isn't set, fetch it from 1Password before running scripts: export LINEAR_API_KEY="$(op read op://Environments/Linear/credential)".
The argument is one of:
search.js and present the top matches via AskUserQuestion.node "${CLAUDE_PLUGIN_DIR}/scripts/linear/search.js" --type project --query "<text>" --limit 5
Render results as <name> — <team keys> — <url> and let the user pick. If there are no matches, ask the user to provide the URL or run /plan first to create the project. Never guess — keep asking until the user confirms.
Once resolved, fetch the project and its existing documents:
node "${CLAUDE_PLUGIN_DIR}/scripts/linear/get-project.js" "<project-id>" --with-documents --with-issues
Record project_id, project_url, and check whether a document titled Architecture already exists. If yes, ask via AskUserQuestion whether to redo or revise.
The reasoning/context lives on disk:
Context: line)./ideate first.The briefing's project context (type, language, workspace, code repository) tells you what kind of architecture this needs.
Catalog every foundational decision needed. The categories depend on the project type.
Not every project needs all categories. Skip what's irrelevant.
Mix categories from the above as appropriate.
For each major decision, use AskUserQuestion to present:
Group related decisions (2-3 per round) to keep the conversation efficient. Iterate until all major decisions are resolved.
Compose the architecture content as Markdown using the section template that fits the project type (see below), then write it to Linear:
# New document
cat <<'MD' | node "${CLAUDE_PLUGIN_DIR}/scripts/linear/create-document.js" \
--project "<project-id>" \
--title "Architecture"
<full markdown content>
MD
# Or, if revising an existing one (you have its <doc-id> from get-project.js):
cat <<'MD' | node "${CLAUDE_PLUGIN_DIR}/scripts/linear/update-document.js" "<doc-id>"
<full markdown content>
MD
Use a tempfile via Write to a /tmp/<project-name>/architecture.md location and pipe it to the script — this keeps the prompt clean and lets you re-run on failure.
If the project briefing on disk has a "Linear" or "Quick Links" section, append a link to the new Architecture document. If the project's Linear description does not start with Context: <path-to-briefing>, propose updating it via set-project-description.js. Confirm with the user before editing either side.
Before finalizing, verify:
Present a summary:
create-document.js)/plan to design the delivery roadmap, then /orchestrate <DIN-XXX> to execute each spec."Ask for final sign-off.
development
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
tools
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
development
Convert documents and files to Markdown using markitdown. Use when converting PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx, .xls), HTML, CSV, JSON, XML, images (with EXIF/OCR), audio (with transcription), ZIP archives, YouTube URLs, or EPubs to Markdown format for LLM processing or text analysis.
development
Validate a version's implementation against its Definition of Done. For code projects: runs automated tests against the live application. For non-code projects: reviews deliverables against acceptance criteria. Runs incrementally on re-runs. Ends with human validation guidance.