🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

OGT Docs Define

by @eduardou24

General guide for creating definition documents. Use when you need to define WHAT something IS - concepts, entities, systems, or domains. Routes to specialized sub-skills for specific definition types (business, features, code, marketing, branding, tools).

Versionv1.0.0
Downloads1,794
TERMINAL
clawhub install ogt-docs-define

πŸ“– About This Skill


name: ogt-docs-define description: General guide for creating definition documents. Use when you need to define WHAT something IS - concepts, entities, systems, or domains. Routes to specialized sub-skills for specific definition types (business, features, code, marketing, branding, tools).

OGT Docs - Define

Guide for creating definition documents that establish WHAT things ARE in your system.

Philosophy

Definitions are the foundation of shared understanding.

Before anyone can implement, market, or discuss something, there must be a clear, agreed-upon definition of what it IS.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    THE DEFINITION PRINCIPLE                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  A definition answers:                                          β”‚
β”‚    β€’ WHAT is this thing?                                        β”‚
β”‚    β€’ WHY does it exist?                                         β”‚
β”‚    β€’ WHAT are its boundaries? (what it is NOT)                  β”‚
β”‚    β€’ HOW does it relate to other things?                        β”‚
β”‚                                                                 β”‚
β”‚  A definition does NOT specify:                                 β”‚
β”‚    β€’ HOW to implement it (that's rules/)                        β”‚
β”‚    β€’ WHAT to do with it (that's todo/)                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

When to Use This Skill

Use ogt-docs-define when you need to:

  • Understand the definitions folder structure
  • Choose the right definition sub-skill
  • Create a definition that doesn't fit specialized categories
  • For specific definition types, use:

    | Type | Sub-Skill | Use When | | ---------------------- | --------------------------- | -------------------------------------- | | Business concepts | ogt-docs-define-business | Pricing, users, revenue, market | | Product features | ogt-docs-define-feature | New capabilities, user-facing features | | Technical architecture | ogt-docs-define-code | Services, data models, APIs | | Marketing concepts | ogt-docs-define-marketing | Messaging, positioning, audience | | Brand identity | ogt-docs-define-branding | Visual identity, tone, guidelines | | Developer tools | ogt-docs-define-tools | CLI, scripts, dev workflows |

    Folder Structure

    docs/definitions/
    β”œβ”€β”€ business/                   # Business model and operations
    β”‚   β”œβ”€β”€ pricing_model/
    β”‚   β”‚   β”œβ”€β”€ definition.md
    β”‚   β”‚   β”œβ”€β”€ tiers.md
    β”‚   β”‚   β”œβ”€β”€ limits.md
    β”‚   β”‚   └── .approved_by_founder
    β”‚   β”œβ”€β”€ user_types/
    β”‚   β”œβ”€β”€ revenue_model/
    β”‚   └── market_position/
    β”‚
    β”œβ”€β”€ features/                   # Product features
    β”‚   β”œβ”€β”€ global_search/
    β”‚   β”‚   β”œβ”€β”€ feature.md
    β”‚   β”‚   β”œβ”€β”€ mvp.md
    β”‚   β”‚   β”œβ”€β”€ phase_0.md
    β”‚   β”‚   β”œβ”€β”€ phase_1.md
    β”‚   β”‚   β”œβ”€β”€ nice_to_have.md
    β”‚   β”‚   └── .version
    β”‚   β”œβ”€β”€ user_auth/
    β”‚   └── campaign_manager/
    β”‚
    β”œβ”€β”€ technical/                  # Architecture and systems
    β”‚   β”œβ”€β”€ service_layer/
    β”‚   β”‚   β”œβ”€β”€ definition.md
    β”‚   β”‚   β”œβ”€β”€ contracts.md
    β”‚   β”‚   β”œβ”€β”€ patterns.md
    β”‚   β”‚   └── .version
    β”‚   β”œβ”€β”€ data_model/
    β”‚   └── api_design/
    β”‚
    β”œβ”€β”€ domain/                     # Domain-specific concepts
    β”‚   β”œβ”€β”€ creatures/
    β”‚   β”œβ”€β”€ abilities/
    β”‚   └── campaigns/
    β”‚
    β”œβ”€β”€ marketing/                  # Marketing and communications
    β”‚   β”œβ”€β”€ value_proposition/
    β”‚   β”œβ”€β”€ target_audience/
    β”‚   └── messaging/
    β”‚
    β”œβ”€β”€ branding/                   # Brand identity
    β”‚   β”œβ”€β”€ visual_identity/
    β”‚   β”œβ”€β”€ tone_of_voice/
    β”‚   └── brand_guidelines/
    β”‚
    └── tools/                      # Developer tooling
        β”œβ”€β”€ cli/
        β”œβ”€β”€ scripts/
        └── workflows/
    

    The Folder-as-Entity Pattern

    Every definition is a folder containing:

    {definition_slug}/
    β”œβ”€β”€ {type}.md                   # Primary definition file
    β”œβ”€β”€ {aspect}.md                 # Additional aspects/details
    β”œβ”€β”€ {related}.md                # Related concepts
    └── .{signals}                  # Status and metadata
    

    Primary File Naming

    | Definition Type | Primary File | | --------------- | --------------- | | Business | definition.md | | Feature | feature.md | | Technical | definition.md | | Domain | definition.md | | Marketing | definition.md | | Branding | definition.md | | Tools | definition.md |

    Definition Lifecycle

    flowchart LR
        subgraph lifecycle ["Definition Lifecycle"]
            D[draft] --> R[review]
            R --> A[approved]
            R --> REJ[rejected]
            REJ --> D
            A --> DEP[deprecated]
        end

    style D fill:#fef3c7 style R fill:#e0e7ff style A fill:#d1fae5 style REJ fill:#fecaca style DEP fill:#e5e7eb

    Draft State

    Definition is being written, not yet ready for review.

    {definition_slug}/
    β”œβ”€β”€ definition.md
    β”œβ”€β”€ .version
    └── .draft                      # Empty signal: still in draft
    

    Review State

    Definition is complete and awaiting approval.

    {definition_slug}/
    β”œβ”€β”€ definition.md
    β”œβ”€β”€ .version
    β”œβ”€β”€ .ready_for_review           # Empty signal
    └── .review_requested_at        # Timestamp
    

    Approved State

    Definition is approved and can be referenced/implemented.

    {definition_slug}/
    β”œβ”€β”€ definition.md
    β”œβ”€β”€ .version
    β”œβ”€β”€ .approved                   # Empty signal
    β”œβ”€β”€ .approved_by_{name}         # Who approved
    └── .approved_at                # When approved
    

    Rejected State

    Definition was rejected, needs rework.

    {definition_slug}/
    β”œβ”€β”€ definition.md
    β”œβ”€β”€ .version
    β”œβ”€β”€ .rejected                   # Empty signal
    β”œβ”€β”€ .rejected_reason            # Why rejected
    └── .rejected_at                # When rejected
    

    Deprecated State

    Definition is outdated, replaced by something else.

    {definition_slug}/
    β”œβ”€β”€ definition.md
    β”œβ”€β”€ .version
    β”œβ”€β”€ .deprecated                 # Empty signal
    β”œβ”€β”€ .deprecated_reason          # Why deprecated
    β”œβ”€β”€ .deprecated_at              # When deprecated
    └── .superseded_by              # What replaces it
    


    Creating a Definition: The Process

    flowchart TD
        A[Need to define something] --> B{What type?}
        B -->|Business| C[ogt-docs-define-business]
        B -->|Feature| D[ogt-docs-define-feature]
        B -->|Technical| E[ogt-docs-define-code]
        B -->|Marketing| F[ogt-docs-define-marketing]
        B -->|Brand| G[ogt-docs-define-branding]
        B -->|Tools| H[ogt-docs-define-tools]
        B -->|Other| I[Use this skill]

    I --> J[Ask clarifying questions] J --> K[Draft definition] K --> L[Request review] L --> M{Approved?} M -->|Yes| N[Mark approved] M -->|No| O[Address feedback] O --> K

    Step 1: Ask Clarifying Questions

    Before writing any definition, gather information:

    Core Questions (always ask):

    1. What is the name/identifier for this concept? 2. In one sentence, what IS it? 3. Why does it need to exist? What problem does it solve? 4. What is it NOT? (boundaries) 5. What other concepts does it relate to?

    Context Questions (ask as relevant): 6. Who are the stakeholders? 7. Are there existing similar concepts? 8. What decisions led to this concept? 9. What are the success criteria?

    Step 2: Draft the Definition

    Use the appropriate template based on type (see sub-skills).

    Generic Definition Template:

    # Definition: {Name}

    Overview

    One paragraph explaining what this is and why it exists.

    Core Concept

    Detailed explanation of the concept.

    Key Characteristics

  • Characteristic 1
  • Characteristic 2
  • Characteristic 3
  • Boundaries

    What this is NOT:

  • Not X
  • Not Y
  • Not Z
  • Relationships

    How this relates to other concepts.

    | Related Concept | Relationship | | --------------- | -------------------------- | | Concept A | Uses/Contains/Depends on | | Concept B | Parallel to/Alternative to |

    Examples

    Concrete examples that illustrate the concept.

    Example 1: {Name}

    Description of example.

    Example 2: {Name}

    Description of example.

    Open Questions

    Unresolved questions that need future discussion.

  • Question 1?
  • Question 2?
  • Step 3: Add Signal Files

    # Create version file
    echo '{"schema": "1.0", "created": "'$(date -Iseconds)'"}' > .version

    Mark as draft

    touch .draft

    Step 4: Request Review

    # Remove draft signal
    rm .draft

    Add review signals

    touch .ready_for_review echo "$(date -Iseconds)" > .review_requested_at

    Step 5: Handle Review Outcome

    If Approved:

    rm .ready_for_review .review_requested_at
    touch .approved
    touch .approved_by_{reviewer_name}
    echo "$(date -Iseconds)" > .approved_at
    

    If Rejected:

    rm .ready_for_review .review_requested_at
    touch .rejected
    echo "Reason for rejection" > .rejected_reason
    echo "$(date -Iseconds)" > .rejected_at
    

    Then address feedback and restart from Step 2


    Signal Files Reference

    Status Signals (empty files)

    | Signal | Meaning | | ------------------- | ---------------------- | | .draft | Still being written | | .ready_for_review | Ready for review | | .approved | Approved for use | | .rejected | Rejected, needs rework | | .deprecated | No longer current |

    Attribution Signals (empty files)

    | Signal | Meaning | | --------------------- | ------------ | | .approved_by_{name} | Who approved | | .created_by_{name} | Who created | | .reviewed_by_{name} | Who reviewed |

    Content Signals (contain text)

    | Signal | Content | | ---------------------- | ------------------------------------------- | | .version | JSON: {"schema": "1.0", "created": "..."} | | .rejected_reason | Why rejected | | .deprecated_reason | Why deprecated | | .superseded_by | Path to replacement definition | | .review_requested_at | ISO timestamp | | .approved_at | ISO timestamp | | .rejected_at | ISO timestamp | | .deprecated_at | ISO timestamp |


    Referencing Definitions

    When other documents reference a definition:

    See Definition: User Types
    Per the Service Layer Definition
    

    When code implements a definition, add a comment:

    /**
     * Implements: docs/definitions/technical/service_layer/
     * @see definition.md for contracts
     */
    export class UserService implements IService {
      // ...
    }
    


    Common Mistakes

    | Mistake | Why It's Wrong | Correct Approach | | ---------------------------- | ------------------------------------------ | --------------------------------------- | | Mixing definition with rules | Conflates WHAT with HOW | Keep definition pure, put HOW in rules/ | | No boundaries section | Unclear scope leads to scope creep | Always define what it is NOT | | Skipping review | Unvalidated definitions cause misalignment | Always get approval | | Editing approved definitions | Breaks references | Create new version or deprecate | | No relationships section | Isolated definitions miss connections | Map relationships explicitly | | Too abstract | Can't be implemented | Include concrete examples | | Too specific | Can't adapt to change | Keep at concept level |


    Quality Checklist

    Before requesting review, verify:

  • [ ] Overview explains WHAT and WHY in one paragraph
  • [ ] Core concept is detailed enough to understand
  • [ ] Boundaries clearly state what this is NOT
  • [ ] Relationships map to other definitions
  • [ ] At least 2 concrete examples provided
  • [ ] Open questions listed (if any)
  • [ ] .version file created
  • [ ] .draft signal present (will be removed when requesting review)
  • πŸ’‘ Examples

    Concrete examples that illustrate the concept.

    Example 1: {Name}

    Description of example.

    Example 2: {Name}

    Description of example.