Design Session logo

Design Session

Community
Dark-Alex-17
design-session

AI-first design decomposition for any project. Given a design doc or topic, ground in the actual codebase, produce (or refine) a PLAN file with problem, approach, alternatives, constraints, and a task breakdown sized to ~1 engineer-day per task with measurable acceptance criteria. The plan is written to be a self-contained "sealed container" for context-free implementers. Grants filesystem access for grounding and for writing the plan.

Overview

PublisherDark-Alex-17
Repositorycoyote
Skill namedesign-session
Stars
56
Forks
2
Bundled files
Instructions only
LicenseAGPL-3.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Dark-Alex-17 on GitHub. Read the source before you install it.

Installation

Install the Design Session AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Dark-Alex-17/coyote/tree/main/assets/skills/design-session
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Dark-Alex-17/coyote.git /tmp/coyote
mkdir -p .claude/skills
cp -r /tmp/coyote/assets/skills/design-session .claude/skills/design-session
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Design Session in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Design Session on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Design Session is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

You are decomposing a design doc (or topic) into an executable plan. The output is ONE plan file plus a task breakdown that context-free LLM implementers will execute later with zero access to this conversation. Everything they need must be on the page or pointed to — see the "sealed container" standard below.

Inputs

  • A design doc (path or pasted), or a one-line problem statement.
  • The target project directory (ground truth for all claims).
  • The plans directory where the PLAN file lands.

Step 1 — Ground before proposing

Plans written from memory rot on contact with the code. Before writing anything:

  • Read the project's own orientation docs (CLAUDE.md, AGENTS.md, CONTRIBUTING.md, README.md at the project root) — conventions constrain the design.
  • Read the code the design touches: entry points, the modules to be changed, neighboring examples of the patterns to follow, existing tests.
  • fs_grep every symbol the design doc references — confirm it exists and is spelled right. Note explicitly: what already exists, what would be added, what would change.
  • Verify build/test commands actually exist (Makefile, justfile, package.json scripts, CI config).

Step 2 — The proposal

Produce a structured proposal (iterate with the user when interactive — load the grilling skill and work the open decisions as frontier rounds, each question carrying a recommended answer; in autonomous runs, resolve what the doc + code answer and flag the rest as open questions):

  • Problem — one paragraph; state assumptions explicitly.
  • Scope — In / Out. Call out tempting adjacent work being deferred.
  • Approach — concrete: name files, symbols, data flow, migrations. Reference existing patterns by path.
  • Alternatives considered — table of alternative → why rejected. Settled decisions carry their one-line reason (an unrecorded decision WILL be re-litigated by an implementer).
  • Constraints and risks — conventions the design must respect; ordering dependencies; things you're uncertain about, flagged clearly.
  • Open questions — ONLY questions the codebase cannot answer (business rules, priority calls). If none, say "No open questions."
  • Task breakdown — see below.

Quality bar round (closes Step 2)

The last round of Step 2 sets the plan's quality bar. It is grilling-compatible — run it as numbered questions, each carrying a recommended answer, like any other frontier round:

  1. Propose rigor — one of poc | prototype | production (default production). Infer the recommended value from the design doc's own language: "spike"/"demo" → poc; "iterate"/"internal" → prototype; otherwise production. Rigor calibrates which review-finding severities BLOCK downstream work: 🔴-critical findings block at EVERY rigor; at poc, suggestion/nitpick-level (🟢/💡) convention findings may be dropped from reports entirely. Anything a lower rigor defers is tracked as a follow-up — never silently dropped.
  2. Propose surfaces — zero or more of the closed enum: rest-api, cli, library, worker, iac, db-migration, frontend, ci-cd (grpc/graphql are aliases for rest-api), plus the escape hatch other:<label> for anything outside it. Infer from the approach: an HTTP handler → rest-api, a schema change → db-migration, and so on.
  3. Per-surface confirm/drop — for each accepted surface, present the headline best practices its reviewers will enforce and let the user confirm or drop each one. Every drop demands a one-line reason and lands in the plan's ## Quality bar section — a dropped practice without a recorded reason WILL be re-litigated by a reviewer.

For an other:<label> surface no reviewer checklist exists, so the lane is: a librarian lookup distills an authoritative best-practice checklist for the label; the user confirms or drops each item; accepted items become task acceptance criteria where possible, otherwise they live under ## Quality bar → Long-tail criteria. (The architect drives the lookup; this skill documents the shape the results take in the plan.)

Autonomous runs (no user to grill): take the inferred values, drop nothing, and note "quality bar inferred, not user-confirmed" in the plan.

Task breakdown rules

RuleWhy
One task ≈ one engineer-dayVariable task sizes destroy progress signal; anything larger gets decomposed NOW, not mid-run
Each task independently implementable and verifiableIt builds and its tests pass without later tasks existing
Explicit, acyclic dependencies (blocked_by)Execution order must be derivable from the breakdown alone
Each task states WHERE (files/packages) and WHAT (observable outcome)"Implement service layer" is not a task; "internal/foo/service.go: add Create/Get with validation — returns 400 on missing name" is
Measurable acceptance criteria per taskCriteria become the tests; "works correctly" is unmeasurable
Flag ⚠️ low-confidence sizing with the reasonHonest sizing beats optimistic sizing

Step 3 — Write the PLAN file

Write PLAN-<slug>.md (kebab-case slug from the topic; verify no collision) to the plans directory:

markdown
---
slug: <slug>
status: draft        # draft | active | implemented
created: YYYY-MM-DD
rigor: production    # poc | prototype | production; omitted = production
surfaces: []         # from the closed enum and/or other:<label>; omitted = []
---

# <Title>

## Problem
## Scope (In / Out)
## Approach
## Alternatives considered
## Constraints and risks
## Quality bar
## Open questions
## Task breakdown

| # | Task | Size | blocked_by | Notes |
|---|------|------|-----------|-------|

## Added artefacts

| Artefact | Lifetime | Removed by |
|---|---|---|

## Quality bar records the quality-bar round in human-readable form: the rigor line with its one-line reason, the surfaces line, the dropped-practices list (each entry with its one-line reason and the date it was decided), and the long-tail criteria block (none, or the distilled checklist for each other:<label> surface). This section is the home for recorded decisions and evidence of what was checked (alongside ## Alternatives considered and the task logs); never CONTRIBUTING, README or code comments.

## Added artefacts is the lifetime table from plan-authoring (| Artefact | Lifetime | Removed by |): every document, directory, example target, dependency added ahead of use or smoke test the plan introduces, each marked permanent or replaced by <X> at <milestone> with the task that removes it.

The plan is the implementers' entire context. Write for the "sealed container" standard: every question an implementer will hit is either answered inline or delegated via a pointer to the exact file/doc that answers it (where infra code goes, what DB tech, which layout to mirror, exact test commands). Paste short code snippets for load-bearing patterns — a path alone forces re-exploration; a stale claim fails the executor mid-implementation.

Anti-patterns

  • Proposing before reading the code — a design ungrounded in the actual codebase is fiction.
  • "As discussed" / "per our conversation" — the implementer has no conversation.
  • Tasks larger than a day hiding an "and then also…".
  • Acceptance criteria describing implementation ("uses a for loop") instead of behavior.
  • Open questions the code could have answered — grep first, ask last.
  • Unrecorded decisions — every settled fork carries its reason.
  • Declaring rigor: poc to dodge review findings the user never agreed to drop.

Frequently asked questions

What does the Design Session AI skill do?

AI-first design decomposition for any project. Given a design doc or topic, ground in the actual codebase, produce (or refine) a PLAN file with problem, approach, alternatives, constraints, and a task breakdown sized to ~1 engineer-day per task with measurable acceptance criteria. The plan is written to be a self-contained "sealed container" for context-free implementers. Grants filesystem access for grounding and for writing the plan.

Why use Design Session on TypingMind?

Because you install it once and use it with any model. Design Session is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Design Session in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Dark-Alex-17/coyote/tree/main/assets/skills/design-session. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Design Session?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Design Session?

As many as you like. As long as a model supports skills, you can use Design Session with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Design Session AI skill free?

Yes. It is published on GitHub by Dark-Alex-17 under the AGPL-3.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇