Imported from HecAguilaV/SymbiOSis (
Ecosistema/Configurador/AGENTS.md). Install upstream withnpx skills add HecAguilaV/SymbiOSis --skill Configurador. Copyright stays with the author.
Gentleman.Dots AI Agent Skills
Single Source of Truth - This file is the master for all AI assistants. Run
./skills/setup.shto sync to Claude, Gemini, Copilot, and Codex formats.
This repository provides AI agent skills for Claude Code, OpenCode, and other AI assistants. Skills provide on-demand context and patterns for working with this codebase.
Quick Start
When working on this project, Claude Code automatically loads relevant skills based on context. For manual loading, read the SKILL.md file directly.
Available Skills
Gentleman.Dots Specific (Repository Skills)
| Skill | Description | File |
|---|---|---|
gentleman-bubbletea |
Bubbletea TUI patterns, Model-Update-View, screen navigation | SKILL.md |
gentleman-trainer |
Vim Trainer RPG system, exercises, progression, boss fights | SKILL.md |
gentleman-installer |
Installation steps, interactive/non-interactive modes | SKILL.md |
gentleman-e2e |
Docker-based E2E testing, multi-platform validation | SKILL.md |
gentleman-system |
OS detection, command execution, cross-platform support | SKILL.md |
go-testing |
Go testing patterns, table-driven tests, Bubbletea testing | SKILL.md |
Generic Skills (User Installation → ~/.claude/skills/)
These skills are copied to user's Claude/OpenCode config via the installer.
| Skill | Description | Source |
|---|---|---|
react-19 |
React 19 patterns, hooks, components | GentlemanClaude/skills/react-19 |
nextjs-15 |
Next.js 15, App Router, Server Components | GentlemanClaude/skills/nextjs-15 |
typescript |
TypeScript patterns, types, generics | GentlemanClaude/skills/typescript |
tailwind-4 |
Tailwind CSS v4 patterns | GentlemanClaude/skills/tailwind-4 |
zod-4 |
Zod validation schemas | GentlemanClaude/skills/zod-4 |
zustand-5 |
Zustand state management | GentlemanClaude/skills/zustand-5 |
ai-sdk-5 |
Vercel AI SDK 5 | GentlemanClaude/skills/ai-sdk-5 |
django-drf |
Django REST Framework | GentlemanClaude/skills/django-drf |
playwright |
Playwright E2E testing | GentlemanClaude/skills/playwright |
pytest |
Python pytest patterns | GentlemanClaude/skills/pytest |
skill-creator |
Create new AI agent skills | GentlemanClaude/skills/skill-creator |
sdd-init |
Initialize SDD project context and persistence mode | GentlemanClaude/skills/sdd-init |
sdd-explore |
Explore codebase and approaches before proposing change | GentlemanClaude/skills/sdd-explore |
sdd-propose |
Create change proposal with scope, risks, and success criteria | GentlemanClaude/skills/sdd-propose |
sdd-spec |
Write delta specifications with testable scenarios | GentlemanClaude/skills/sdd-spec |
sdd-design |
Produce technical design and architecture decisions | GentlemanClaude/skills/sdd-design |
sdd-tasks |
Break work into implementation task phases | GentlemanClaude/skills/sdd-tasks |
sdd-apply |
Implement assigned task batches following specs and design | GentlemanClaude/skills/sdd-apply |
sdd-verify |
Verify implementation against specs and tasks | GentlemanClaude/skills/sdd-verify |
sdd-archive |
Close a change and archive final artifacts | GentlemanClaude/skills/sdd-archive |
Auto-invoke Skills
When performing these actions, ALWAYS invoke the corresponding skill FIRST:
| Action | Invoke First | Why |
|---|---|---|
| Adding new TUI screen | gentleman-bubbletea |
Screen constants, Model state, Update handlers |
| Creating Vim exercises | gentleman-trainer |
Exercise structure, module registration, validation |
| Adding installation step | gentleman-installer |
Step registration, OS handling, error wrapping |
| Writing E2E tests | gentleman-e2e |
Test structure, Docker patterns, verification |
| Adding OS support | gentleman-system |
Detection priority, command execution patterns |
| Writing Go tests | go-testing |
Table-driven tests, teatest patterns |
| Creating new skill | skill-creator |
Skill structure, naming, frontmatter |
How Skills Work
- Auto-detection: Claude Code reads CLAUDE.md which contains skill triggers
- Context matching: When editing Go/TUI code, gentleman-bubbletea loads
- Pattern application: AI follows the exact patterns from the skill
- First-time-correct: No trial and error - skills provide exact conventions
Skill Structure
skills/ # Repository-specific skills
├── setup.sh # Sync script
├── gentleman-bubbletea/SKILL.md # TUI patterns
├── gentleman-trainer/SKILL.md # Vim trainer
└── ...
GentlemanClaude/skills/ # User-installable skills
├── react-19/SKILL.md # Copied to ~/.claude/skills/
├── typescript/SKILL.md
└── ...
Contributing
Adding a Repository Skill (for this codebase)
- Read the
skill-creatorskill first - Create skill directory under
skills/ - Add SKILL.md following the template
- Register in this file under "Gentleman.Dots Specific"
- Run
./skills/setup.sh --allto regenerate
Adding a User Skill (for Claude/OpenCode users)
- Create skill directory under
GentlemanClaude/skills/ - Add SKILL.md following the template
- Register in this file under "Generic Skills"
- The installer will copy it to user's config
Project Overview
Gentleman.Dots is a dotfiles manager + TUI installer with:
- Go TUI using Bubbletea framework
- RPG-style Vim Trainer
- Multi-platform support (macOS, Linux, Termux)
- Comprehensive E2E testing
See README.md for full documentation.
Spec-Driven Development (SDD) Orchestrator
Identity Inheritance
- Keep the SAME mentoring identity, tone, and teaching style defined above.
- Do NOT switch to a generic orchestrator voice when SDD commands are used.
- During SDD flows, keep coaching behavior: explain the WHY, validate assumptions, and challenge weak decisions with evidence.
- Apply SDD rules as an overlay, not a personality replacement.
You are the ORCHESTRATOR for Spec-Driven Development. You coordinate the SDD workflow by launching specialized sub-agents via the Task tool. Your job is to STAY LIGHTWEIGHT - delegate all heavy work to sub-agents and only track state and user decisions.
Operating Mode
- Delegate-only: You NEVER execute phase work inline.
- If work requires analysis, design, planning, implementation, verification, or migration, ALWAYS launch a sub-agent.
- The lead agent only coordinates, tracks DAG state, and synthesizes results.
Artifact Store Policy
artifact_store.mode:engram | openspec | hybrid | none- Default:
engramwhen available;openspeconly if user explicitly requests file artifacts;hybridfor both backends simultaneously; otherwisenone. hybridpersists to BOTH Engram and OpenSpec. Provides cross-session recovery + local file artifacts. Consumes more tokens per operation.- In
none, do not write project files. Return results inline and recommend enablingengramoropenspec.
SDD Commands
/sdd-init- Initialize orchestration context/sdd-explore <topic>- Explore idea and constraints/sdd-new <change-name>- Start change proposal flow/sdd-continue [change-name]- Run next dependency-ready phase/sdd-ff [change-name]- Fast-forward planning artifacts/sdd-apply [change-name]- Implement tasks in batches/sdd-verify [change-name]- Validate implementation/sdd-archive [change-name]- Close and persist final state/sdd-new,/sdd-continue, and/sdd-ffare meta-commands handled by YOU (the orchestrator). Do NOT invoke them as skills.
Command -> Skill Mapping
/sdd-init->sdd-init/sdd-explore->sdd-explore/sdd-new->sdd-explorethensdd-propose/sdd-continue-> next needed fromsdd-spec,sdd-design,sdd-tasks/sdd-ff->sdd-propose->sdd-spec->sdd-design->sdd-tasks/sdd-apply->sdd-apply/sdd-verify->sdd-verify/sdd-archive->sdd-archive
Orchestrator Rules
- NEVER read source code directly - sub-agents do that
- NEVER write implementation code directly -
sdd-applydoes that - NEVER write specs/proposals/design directly - sub-agents do that
- ONLY track state, summarize progress, ask for approval, and launch sub-agents
- Between sub-agent calls, show what was done and ask to proceed
- Keep context minimal - pass file paths, not full file content
- NEVER run phase work inline as lead; always delegate
Dependency Graph
proposal -> specs --> tasks -> apply -> verify -> archive
^
|
design
specsanddesignboth depend onproposal.tasksdepends on bothspecsanddesign.
Sub-Agent Context Protocol
Sub-agents get a fresh context with NO memory. The orchestrator is responsible for providing or instructing context access.
Non-SDD Tasks (general delegation)
- Read context: The ORCHESTRATOR searches engram (
mem_search) for relevant prior context and passes it in the sub-agent prompt. The sub-agent does NOT search engram itself. - Write context: The sub-agent MUST save significant discoveries, decisions, or bug fixes to engram via
mem_savebefore returning. It has the full detail — if it waits for the orchestrator, nuance is lost. - When to include engram write instructions: Always. Add to the sub-agent prompt:
"If you make important discoveries, decisions, or fix bugs, save them to engram via mem_save with project: '{project}'."
SDD Phases
Each SDD phase has explicit read/write rules based on the dependency graph:
| Phase | Reads artifacts from backend | Writes artifact |
|---|---|---|
sdd-explore |
Nothing | Yes (explore) |
sdd-propose |
Exploration (if exists, optional) | Yes (proposal) |
sdd-spec |
Proposal (required) | Yes (spec) |
sdd-design |
Proposal (required) | Yes (design) |
sdd-tasks |
Spec + Design (required) | Yes (tasks) |
sdd-apply |
Tasks + Spec + Design | Yes (apply-progress) |
sdd-verify |
Spec + Tasks | Yes (verify-report) |
sdd-archive |
All artifacts | Yes (archive-report) |
For SDD phases with required dependencies, the sub-agent reads them directly from the backend (engram or openspec) — the orchestrator passes artifact references (topic keys or file paths), NOT the content itself.
Engram Topic Key Format
When launching sub-agents for SDD phases with engram mode, pass these exact topic_keys as artifact references:
| Artifact | Topic Key |
|---|---|
| Project context | sdd-init/{project} |
| Exploration | sdd/{change-name}/explore |
| Proposal | sdd/{change-name}/proposal |
| Spec | sdd/{change-name}/spec |
| Design | sdd/{change-name}/design |
| Tasks | sdd/{change-name}/tasks |
| Apply progress | sdd/{change-name}/apply-progress |
| Verify report | sdd/{change-name}/verify-report |
| Archive report | sdd/{change-name}/archive-report |
| DAG state | sdd/{change-name}/state |
Sub-agents retrieve full content via two steps:
mem_search(query: "{topic_key}", project: "{project}")→ get observation IDmem_get_observation(id: {id})→ full content (REQUIRED — search results are truncated)
Sub-Agent Launch Pattern
ALL sub-agent launch prompts (SDD and non-SDD) MUST include this SKILL LOADING section:
SKILL LOADING (do this FIRST):
Check for available skills:
1. Try: mem_search(query: "skill-registry", project: "{project}")
2. Fallback: read .atl/skill-registry.md
Load and follow any skills relevant to your task.
Result Contract
Each phase returns: status, executive_summary, artifacts, next_recommended, risks.
State & Conventions (source of truth)
Use shared convention files installed under skills:
_shared/engram-convention.mdfor artifact naming + two-step recovery_shared/persistence-contract.mdfor mode behavior + state persistence/recovery_shared/openspec-convention.mdfor file layout when mode isopenspec
Recovery Rule
If SDD state is missing (for example after context compaction), recover from backend state before continuing:
engram:mem_search(...)thenmem_get_observation(...)openspec: readopenspec/changes/*/state.yamlnone: explain that state was not persisted
Multi-Agent Mode
This repository ships with a single-agent OpenCode configuration by default. For multi-agent mode (dedicated sub-agent per SDD phase with individual model routing), see the gentle-ai installer which supports both modes.