Browse / Design Tools / Concept Designer

Concept Designer

Designs software functionality using Daniel Jackson's concept methodology to model features, analyze existing applications, and compose systems.

The source repository doesn't declare a license. Check its terms before reusing the code.

Key features

  • Analyzes existing applications to identify their core concepts.
  • Includes a library of common concept patterns for social, content, and organization features.
  • Provides structured workflows for designing new concepts (purpose, principle, state, actions).
  • Guides the composition of multiple concepts to work together without tight coupling.
  • Validates concept designs against 8 key criteria (e.g., user-facing, independent, reusable).

Use cases

  • Deconstruct an application like Twitter into its fundamental concepts (e.g., Post, Follow, Mention).
  • Design a new 'bookmarking' or 'tagging' feature for an application.
  • Model how 'comment' and 'upvote' concepts should interact within a system.

FAQ

What does the Concept Designer skill do?

This skill helps you analyze, design, and model software functionality using Daniel Jackson's concept methodology. It allows you to break down applications into reusable, independent 'concepts', each with a clear purpose, state, and set of actions.

What capabilities does it provide?

It offers structured workflows for analyzing existing apps, designing new features from scratch, and composing multiple concepts together. It also provides validation against 8 key design criteria and includes a library of common concept patterns for social and organizational features.

When should I use this skill?

Use it during the early stages of software design, when defining a new feature, or when trying to understand the architecture of an existing application. It's perfect for prompts like 'design a concept for a follow feature' or 'analyze the core concepts of Reddit'.

How does this skill improve my workflow?

It provides a structured, repeatable process for software design that focuses on creating user-centric, independent, and reusable features. This leads to systems that are easier to understand, maintain, and evolve over time by avoiding tightly coupled components.