agentleFS
jmylchreestjmylchreest/aide/skills/design/SKILL.md

design

Skill19 starsChanged 3 months agoMITView on GitHub

Technical design and architecture for implementation

197 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use banner-design, ui-styling and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • seikaikyoSkill

    banner-design

    Design banners for social media, ads, website heroes, creative assets, and print. Multiple art direction options with optional generated or supplied visuals. Actions: design, create, generate banner. Platforms: Facebook, Twitter/X, LinkedIn, YouTube, Instagram, Google Display, website hero, print. Styles: minimalist, gradient, bold typography, photo-based, illustrated, geometric, retro, glassmorphism, 3D, neon, duotone, editorial, collage.

    Also in 38 projects that use this

  • MicrosoftSkill

    ui-styling

    Guide for the visual style, structure, and shared building blocks used by Semantic Link Labs interactive UI tools (HTML widgets and anywidget-based widgets). Use this when adding a new interactive UI, modifying an existing one, or adding shared visual components.

    Also in 39 projects that use this

  • seikaikyoSkill

    brand

    Brand voice, visual identity, messaging frameworks, asset management, brand consistency. Activate for branded content, tone of voice, marketing assets, brand compliance, style guides.

    Also in 43 projects that use this

  • mayankjain1815-commitsSkill

    infra-audit

    Reads docker-compose, env files, ORM configs, and connection strings to map current infrastructure. Flags missing layers (cache, queue, analytics) based on observed access patterns. Outputs a structured infrastructure manifest.

    Also in 3 projects that use this

  • JetBrainsSkill

    slides

    Create and edit presentation slide decks (`.pptx`) with PptxGenJS and render/validation utilities. Use when tasks involve building a new PowerPoint deck, recreating slides from screenshots/PDFs/reference decks, modifying slide content while preserving editable output, adding charts/diagrams/visuals, or diagnosing layout issues such as overflow, overlaps, and font substitution.

    Also in 42 projects that use this

  • AnthropicSkill

    design-system

    Audit, document, or extend your design system. Use when checking for naming inconsistencies or hardcoded values across components, writing documentation for a component's variants, states, and accessibility notes, or designing a new pattern that fits the existing system.

    Also in 49 projects that use this

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 6 are distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 174 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create a structured design document that defines:

    line 23
  2. Distinctive:

    Read the request and identify:

    line 34
  3. Distinctive:

    Use search tools to understand existing patterns:

    line 42
  4. Very specific:

    Use Grep for similar patterns, interfaces, types

    line 44
  5. Very specific:

    Use Glob for relevant files

    line 45
  6. Very specific:

    Use mcp__plugin_aide_aide__decision_list to review all decisions

    line 46
  7. Very specific:

    Use mcp__plugin_aide_aide__decision_get with the relevant topic to check specific decisions

    line 47
  8. Very specific:

    Attribution (--by): use the git username — the GitHub handle, as in the remote URL — not a display name.

    line 100
  9. Distinctive:

    Document the conflicting patterns

    line 183
  10. Distinctive:

    When storing memories from this skill (assumptions, decisions, discoveries), always:

    line 208
  11. Very specific:

    Verify codebase claims: before storing — If a memory references a file, function, or path, confirm it exists first.

    line 212
  12. Distinctive:

    When design is complete:

    line 217

“Common” is measured: kept by at least 6 in 10 of the 174 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Design Mode

Recommended model tier: smart (opus) - this skill requires complex reasoning

Output a technical design specification that downstream SDLC stages can consume.

Purpose

Create a structured design document that defines:

  1. What to build (interfaces, types, components)
  2. How it fits together (data flow, interactions)
  3. Why key decisions were made (rationale)
  4. Success criteria (acceptance criteria for TEST stage)

Workflow

Step 1: Understand the Request

Read the request and identify:

  • Core functionality required
  • Constraints (tech stack, patterns, performance)
  • Integration points with existing code

Step 2: Explore the Codebase

Use search tools to understand existing patterns:

  • Use Grep for similar patterns, interfaces, types
  • Use Glob for relevant files
  • Use mcp__plugin_aide_aide__decision_list to review all decisions
  • Use mcp__plugin_aide_aide__decision_get with the relevant topic to check specific decisions

Step 3: Define Interfaces

Define the public API/interfaces first:

// Example TypeScript interface
interface UserService {
  createUser(data: CreateUserInput): Promise<User>;
  getUser(id: string): Promise<User | null>;
  updateUser(id: string, data: UpdateUserInput): Promise<User>;
}

interface CreateUserInput {
  email: string;
  name: string;
}
// Example Go interface
type UserService interface {
    CreateUser(ctx context.Context, input CreateUserInput) (*User, error)
    GetUser(ctx context.Context, id string) (*User, error)
    UpdateUser(ctx context.Context, id string, input UpdateUserInput) (*User, error)
}

Step 4: Document Data Flow

Describe how components interact:

Request → Controller → Service → Repository → Database
                ↓
           Validator
                ↓
          Error Handler → Response

Step 5: Record Key Decisions

Store architectural decisions for future reference:

./.aide/bin/aide decision set "<feature>-storage" "PostgreSQL with JSONB for metadata" \
  --rationale="Need flexible schema for user preferences" --by="<git-username>"

./.aide/bin/aide decision set "<feature>-auth" "JWT with refresh tokens" \
  --rationale="Stateless auth, mobile client support" --by="<git-username>"

Attribution (--by): use the git username — the GitHub handle, as in the remote URL — not a display name. Never guess a person's identifier: if you do not know it, omit --by rather than inventing one. The store is append-only, so a wrong byline cannot be edited, only superseded by a new version whose sole change is the name.

Binary location: The aide binary is at .aide/bin/aide. If it's on your $PATH, you can use aide directly.

Step 6: Define Acceptance Criteria

List specific, testable criteria for the TEST stage:

## Acceptance Criteria

- [ ] User can be created with email and name
- [ ] Duplicate emails are rejected with 409 status
- [ ] Created user has UUID identifier
- [ ] User can be retrieved by ID
- [ ] Non-existent user returns null (not error)
- [ ] User email can be updated
- [ ] User name can be updated

Required Output Format

# Design: [Feature Name]

## Overview

[1-2 sentence summary of what this feature does]

## Interfaces

### [Interface/Type Name]

\`\`\`typescript
// Interface definition with comments
\`\`\`

## Data Flow

[Diagram or description of component interactions]

## Key Decisions

| Decision | Choice     | Rationale |
| -------- | ---------- | --------- |
| Storage  | PostgreSQL | [why]     |
| Auth     | JWT        | [why]     |

## Acceptance Criteria

- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3

## Files to Create/Modify

- `path/to/file.ts` - [purpose]
- `path/to/test.ts` - [test scope]

## Dependencies

- [External packages needed]
- [Internal modules to import]

## Out of Scope

- [Explicitly excluded items]

Failure Handling

Unclear Requirements

  1. List specific ambiguities
  2. State assumptions you're making
  3. Record assumptions: ./.aide/bin/aide memory add --category=decision --tags=project:<name>,session:${AIDE_SESSION_ID},source:inferred "Assumed X because Y"
  4. Proceed with reasonable defaults

Conflicting Patterns Found

  1. Document the conflicting patterns
  2. Choose one and record the decision:
    ./.aide/bin/aide decision set "<topic>" "<choice>" --rationale="<why this over alternatives>"

Too Large / Too Vague

  1. Break into smaller, focused designs
  2. Design the core/MVP first
  3. Note future phases in "Out of Scope"

Verification Checklist

Before completing design:

  • Interfaces are defined with types
  • Data flow is documented
  • Key decisions are recorded in aide
  • Acceptance criteria are testable
  • Files to modify are listed
  • Dependencies are identified

Memory Hygiene

When storing memories from this skill (assumptions, decisions, discoveries), always:

  1. Include source: tag — Use source:inferred for assumptions, source:discovered for findings during exploration
  2. Include scope tags — Add project:<name>,session:<id> (get project name from git remote or directory; session ID from $AIDE_SESSION_ID or $CLAUDE_SESSION_ID)
  3. Verify codebase claims before storing — If a memory references a file, function, or path, confirm it exists first. See the memorise skill for the full verification workflow.
  4. Never use scope:global unless storing a user preference

Completion

When design is complete:

  1. Output the full design document
  2. Confirm: "Design complete. Ready for TEST stage."

The design document feeds directly into the TEST stage, where acceptance criteria become test cases.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.