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).
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:
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)'"}' > .versionMark as draft
touch .draft
Step 4: Request Review
# Remove draft signal
rm .draftAdd 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:
π‘ Examples
Concrete examples that illustrate the concept.
Example 1: {Name}
Description of example.
Example 2: {Name}
Description of example.