Mission: Build a complete, production-ready skill package for Tailwind CSS and publish it under the OpenAEC Foundation on GitHub. This is your standing order for every session in this workspace.
How: Follow the 7-phase research-first methodology. Delegate ALL execution to agents. You are the ARCHITECT — you think, plan, validate, and delegate. Agents do the actual work.
What you do on session start:
- Read ROADMAP.md → determine current phase and next steps
- Read all core files (LESSONS.md, DECISIONS.md, REQUIREMENTS.md, SOURCES.md)
- Continue where the previous session left off
- If Phase 1 is incomplete → create the raw masterplan first
- If Phase 2+ → follow the methodology, delegating in batches of 3 agents
Quality bar: Every skill must be deterministic (ALWAYS/NEVER language), English-only, <500 lines, verified against official docs via WebFetch. No hallucinated APIs. No vague language.
End state: A published GitHub repo at https://github.com/OpenAEC-Foundation/{{GITHUB_REPO_NAME}} with:
- All skills created, validated, and organized
- INDEX.md with complete skill catalog
- README.md with installation instructions and skill table
- Social preview banner (1280x640px) with OpenAEC branding
- Release tag (v1.0.0) and GitHub release
- Repository topics set (claude, skills, {{TECH_TOPIC}}, ai, deterministic, openaec)
Reflection checkpoint: After EVERY phase/batch, pause and ask: Do we need more research? Should we revise the plan? Are we meeting quality standards? Update core files before proceeding.
Consolidate lessons: Any workflow-level insight (not tech-specific) should also be noted for consolidation back to the Workflow Template repo ({{WORKFLOW_TEMPLATE_PATH}} : default /home/freek/GitHub/Skill-Package-Workflow-Template).
Self-audit: At Phase 6 or any time quality is in question, use Protocol P-010 to run a self-audit against the methodology. The audit template and CI/CD pipeline are in the Workflow Template repo.
Masterplan template: When creating your masterplan in Phase 3, follow the EXACT structure from:
- Template:
{{WORKFLOW_TEMPLATE_PATH}}/templates/masterplan.md.template - Proven example (single-tech, 27 skills, 10 batches, one session) : https://github.com/OpenAEC-Foundation/Tauri-2-Claude-Skill-Package/blob/main/docs/masterplan/tauri-masterplan.md
- Proven example (single-tech, 21 skills, 7 batches) : https://github.com/OpenAEC-Foundation/n8n-Claude-Skill-Package/blob/main/docs/masterplan/n8n-masterplan.md
- Proven example (multi-tech, 73 skills, 13+ batches) : https://github.com/OpenAEC-Foundation/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package/blob/main/docs/masterplan/masterplan.md
The masterplan must include: refinement decisions table, skill inventory with exact scope per skill, batch execution plan with dependencies, and COMPLETE agent prompts for every skill (output dir, files, YAML frontmatter, scope bullets, research sections, quality rules).
Reference projects (study these for methodology, not content):
- ERPNext (28 skills): https://github.com/OpenAEC-Foundation/ERPNext_Anthropic_Claude_Development_Skill_Package
- Blender-Bonsai (73 skills): https://github.com/OpenAEC-Foundation/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package
- Tauri 2 (27 skills): https://github.com/OpenAEC-Foundation/Tauri-2-Claude-Skill-Package
- Tailwind CSS skill package for Claude — {{TECH_DESCRIPTION}}
- Technology: {{TECH_NAME}} {{TECH_VERSIONS}}
- Methodology: 7-phase research-first development (proven in ERPNext, Blender-Bonsai, and Tauri packages)
- Workflow reference: https://github.com/OpenAEC-Foundation/Skill-Package-Workflow-Template
- Reference projects:
| File | Domain | Role |
|---|---|---|
| ROADMAP.md | Status | Single source of truth for project status, progress, next steps |
| LESSONS.md | Knowledge | Numbered lessons (L-XXX) discovered during development |
| DECISIONS.md | Architecture | Numbered decisions (D-XXX) with rationale, immutable once recorded |
| REQUIREMENTS.md | Scope | What skills must achieve, quality guarantees |
| SOURCES.md | References | Official documentation URLs, verification rules, last-verified dates |
| WAY_OF_WORK.md | Methodology | 7-phase process, skill structure, content standards |
| CHANGELOG.md | History | Version history in Keep a Changelog format |
| docs/masterplan/{{TECH_PREFIX}}-masterplan.md | Planning | Execution plan with phases, prompts, dependencies |
| README.md | Public | GitHub landing page |
| HANDOFF.md | Overdracht | Quick-start guide for new sessions, batch volgorde, bijzonderheden |
| INDEX.md | Catalog | Complete skill catalog with descriptions and dependency graph |
| Tech | Prefix | Versions |
|---|---|---|
| {{TECH_NAME}} | {{TECH_PREFIX}}- | {{TECH_VERSIONS}} |
| Category | Purpose | Naming |
|---|---|---|
| syntax/ | API syntax, code patterns | {{TECH_PREFIX}}-syntax-{topic} |
| impl/ | Development workflows | {{TECH_PREFIX}}-impl-{topic} |
| errors/ | Error handling patterns | {{TECH_PREFIX}}-errors-{topic} |
| core/ | Cross-cutting concerns, architecture | {{TECH_PREFIX}}-core-{topic} |
| agents/ | Intelligent orchestration | {{TECH_PREFIX}}-agents-{topic} |
project-root/
├── CLAUDE.md # THIS FILE
├── ROADMAP.md # Status (single source of truth)
├── REQUIREMENTS.md # Quality guarantees
├── DECISIONS.md # Architectural decisions
├── SOURCES.md # Official reference URLs
├── WAY_OF_WORK.md # 7-phase methodology
├── LESSONS.md # Lessons learned
├── CHANGELOG.md # Version history
├── README.md # GitHub landing page
├── docs/
│ ├── masterplan/ # {{TECH_PREFIX}}-masterplan.md
│ └── research/ # vooronderzoek-{{TECH_PREFIX}}.md, topic-research/, fragments/
└── skills/
└── source/
├── {{TECH_PREFIX}}-syntax/
├── {{TECH_PREFIX}}-impl/
├── {{TECH_PREFIX}}-errors/
├── {{TECH_PREFIX}}-core/
└── {{TECH_PREFIX}}-agents/
PROMPTS.md is PRIVATE — it contains user session prompts and internal agent task data.
- PROMPTS.md MUST be listed in
.gitignore— NEVER commit or push it to GitHub .claude/directory MUST be listed in.gitignore*.code-workspacefiles MUST be listed in.gitignore- Before ANY
git push, verify thatgit statusdoes NOT show PROMPTS.md as staged - If PROMPTS.md was accidentally committed, remove it:
git rm --cached PROMPTS.md
On FIRST session in a new workspace, ensure permissions are configured for autonomous operation:
- Verify Bypass Permissions — Check that
.claude/settings.jsonhas permissions allowing autonomous execution:If not configured, create{ "permissions": { "allow": ["Bash(*)", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch", "Agent"] } }.claude/settings.jsonwith these permissions. - Verify .gitignore — Ensure PROMPTS.md, .claude/, and *.code-workspace are in
.gitignore. - This enables agents to work without manual approval per tool call — critical for the batch delegation model.
EVERY session begins with this sequence:
- Read ROADMAP.md — Determine current phase, progress percentage, and "Next Steps" section
- Read LESSONS.md — Check recent lessons that may affect your work
- Read DECISIONS.md — Know all architectural decisions (D-001+) and their constraints
- Read REQUIREMENTS.md — Understand quality guarantees and per-area requirements
- Read docs/masterplan/{{TECH_PREFIX}}-masterplan.md — Know the execution plan and current phase details
- If researching: Read SOURCES.md — Know approved sources, verification rules
- If creating skills: Read WAY_OF_WORK.md — Know skill structure, content standards, naming
- Identify next action from ROADMAP.md "Next Steps"
- Confirm with user before proceeding
This Claude Code session + the human user together ARE the meta-orchestrator. We are NOT a relay/passthrough. We are the strategic brain.
What we do HERE (the brain):
- THINK: Analyze problems, design solutions, make architectural decisions
- STRATEGIZE: Plan agent batches, define task decomposition, choose approaches
- DECIDE: Accept/reject agent output, resolve conflicts, set direction
- COMPOSE: Craft precise agent prompts with full context from core files
What agents do THERE (the hands):
- EXECUTE: Research, write, code, validate — the actual work
- CROSS-VALIDATE: Agents check each other's output before it comes back to us
- REPORT: Deliver refined, verified output to the meta-orchestrator
- Delegate EXECUTION via Claude Code Agent tool — thinking stays here
- Validate before accepting (validator-before-apply)
- Strategic reasoning, planning, and decision-making happen in THIS session
- Agents receive complete context (core file references) so they can work autonomously
- Quality criteria from REQUIREMENTS.md (relevant to their task)
- Approved source URLs from SOURCES.md (what docs to consult)
- Current status from ROADMAP.md (what's done, what's needed)
- Relevant constraints from DECISIONS.md
- Skill structure from WAY_OF_WORK.md (if writing skills)
- Think — Define task scope, expected output, success criteria
- Compose — Write task prompt with core file references (see above)
- Spawn Agent — Use Claude Code Agent tool with complete prompt
- Collect — Receive agent output automatically
- Judge — VALIDATE output against REQUIREMENTS.md quality criteria
- Iterate — Accept, or respawn with corrections
- 3 agents per batch (optimal for Claude Code Agent tool)
- Separated file scopes (NEVER two agents on same file)
- Quality gate after every batch
- Cross-validation: review agent output before final acceptance
From REQUIREMENTS.md:
- Skill format requirements (YAML frontmatter, structure)
- Technology version coverage
- Language/framework specific requirements
From DECISIONS.md:
- D-001: English-only content
- D-002: MIT License
- D-003: SKILL.md < 500 lines
From SOURCES.md:
- All code verified against listed official sources only
- No unverified blog posts or outdated content
- File exists and is complete
- YAML frontmatter valid (name, description with trigger words)
- Line count < 500 (SKILL.md)
- English-only (no Dutch or other languages)
- Deterministic language (ALWAYS/NEVER, not "you might consider")
- All references/ files exist and are linked from SKILL.md
- Sources traceable to SOURCES.md approved URLs
If validation fails:
- Document what failed in agent feedback
- Spawn fix-agent with specific correction instructions
- Re-validate after fix
- NEVER accept below quality bar defined in REQUIREMENTS.md
- Read SOURCES.md — Know approved sources
- Read REQUIREMENTS.md — Know what the research must cover
- Read DECISIONS.md — Know constraints
- Use ONLY sources listed in SOURCES.md (or add new ones there)
- Verify code examples against official documentation
- Identify anti-patterns from real GitHub issues
- Use WebFetch to ensure latest documentation is consulted
- Update SOURCES.md "Last Verified" table with verification date
- Log new discoveries in LESSONS.md (numbered L-XXX)
- If new architectural decisions emerge, record in DECISIONS.md (numbered D-XXX)
- Vooronderzoek:
docs/research/vooronderzoek-{{TECH_PREFIX}}.md - Topic research:
docs/research/topic-research/{skill-name}-research.md - Research fragments:
docs/research/fragments/
Defined in detail in WAY_OF_WORK.md and REQUIREMENTS.md. Quick reference:
- English-only (per DECISIONS.md D-001)
- Deterministic: "ALWAYS use X when Y" / "NEVER do X because Y"
- SKILL.md < 500 lines (per DECISIONS.md D-003), heavy content in references/
- YAML frontmatter: name + description with trigger words
- Structure: Quick Reference > Decision Trees > Patterns > Reference Links
- Naming:
{{TECH_PREFIX}}-{category}-{topic} - Verify against SOURCES.md approved URLs only
---
name: tailwind-{{CATEGORY}}-{{TOPIC}}
description: >
Use when [specific trigger scenario].
Prevents the [common mistake / anti-pattern].
Covers [key topics, API areas, version differences].
Keywords: [comma-separated technical terms].
license: MIT
compatibility: "Designed for Claude Code. Requires Tailwind CSS v3.4-v4."
metadata:
author: OpenAEC-Foundation
version: "1.0"
---CRITICAL FORMAT RULES:
- Description MUST use folded block scalar
>(NEVER quoted strings) - Description MUST start with "Use when..."
- Description MUST include "Keywords:" line
- Name MUST be kebab-case, max 64 characters
MANDATORY after EVERY completed phase/batch — PAUSE and answer:
- Research sufficiency: Did this phase reveal gaps? Do we need more research?
- Scope reassessment: Should we add, merge, or remove skills?
- Plan revision: Does the masterplan still make sense? Change batch order?
- Quality reflection: Are we meeting our quality bar consistently?
- New discoveries: Anything for LESSONS.md or DECISIONS.md?
If ANY answer is "yes" → update core files BEFORE continuing. If research needs expanding → return to Phase 2 or 4.
After EVERY completed phase/batch, update these files:
- REFLECTION CHECKPOINT — Answer the 5 questions above (MANDATORY)
- ROADMAP.md — Status, percentage, changelog entry, next steps (MANDATORY)
- LESSONS.md — New patterns or discoveries (if any)
- DECISIONS.md — New architectural decisions (if any)
- SOURCES.md — New sources verified or dates updated (if researching)
- CHANGELOG.md — Milestone entries (for significant completions)
- Commit with message:
Phase X.Y: [action] [subject] - README.md — Check if landing page needs updating
Timing: IMMEDIATE after completion, not deferred.
Before ending ANY session:
- ROADMAP.md — Update current phase status + "Next Steps" section (CRITICAL)
- LESSONS.md — Log anything learned during this session
- DECISIONS.md — Record any decisions made
- CHANGELOG.md — Add entry if milestone reached
- Commit all changes with descriptive message
- Verify README.md reflects current project state
Agents are spawned via the Agent tool within Claude Code. Results are collected automatically when the agent completes.
- Meta-orchestrator composes a prompt with full context
- Agent tool spawns a subagent with that prompt
- Subagent executes and returns results
- Meta-orchestrator validates output against REQUIREMENTS.md
- Accept or respawn with corrections
# Create remote under OpenAEC Foundation
gh repo create OpenAEC-Foundation/{{GITHUB_REPO_NAME}} --public \
--description "Deterministic Claude skills for Tailwind CSS"
# Set remote and push
git remote add origin https://github.com/OpenAEC-Foundation/{{GITHUB_REPO_NAME}}.git
git push -u origin main
# Set topics
gh repo edit --add-topic claude,skills,{{TECH_TOPIC}},ai,deterministic,openaecCreate docs/social-preview-banner.html with:
- 1280x640px dimensions
- Technology branding (brand colors, code samples)
- Skill count prominently displayed
- OpenAEC Foundation branding (bottom-right)
- Render to PNG for GitHub social preview
git tag -a v1.0.0 -m "v1.0.0: X deterministic skills for Tailwind CSS"
git push origin v1.0.0
gh release create v1.0.0 --title "v1.0.0 — Tailwind CSS Skill Package" \
--notes "Initial release with X deterministic skills across 5 categories."When a skill package reaches Phase 6 (Validation) or when requested, run a self-audit.
- Read the methodology audit template from the Workflow Template repo:
{{WORKFLOW_TEMPLATE_PATH}}/templates/methodology-audit.md.template - Read the repo status overview for cross-package context:
{{WORKFLOW_TEMPLATE_PATH}}/REPO-STATUS-AUDIT.md - Or use the ready-made audit prompt:
{{WORKFLOW_TEMPLATE_PATH}}/AUDIT-START-PROMPT.md
Skill packages with GitHub remotes automatically run quality checks on push/PR via:
# .github/workflows/quality.yml
name: Skill Quality
on: [push, pull_request]
jobs:
quality:
uses: OpenAEC-Foundation/Skill-Package-Workflow-Template/.github/workflows/skill-quality.yml@mainThis validates: YAML frontmatter, line count, directory structure, English-only content, and generates a compliance score.
For a comprehensive audit + auto-remediation, copy the prompt from AUDIT-START-PROMPT.md and run it in the target repo's Claude Code session.
Skills are only useful if users can find them. P-011 enforces three discovery surfaces.
| Artifact | Standard | Auto-generated by |
|---|---|---|
package.json with agents.skills[] |
npm-agentskills | scripts/generate-manifest.js |
agents/openai.yaml |
OpenAI Codex skill discovery | scripts/generate-manifest.js |
GitHub topic agentskills |
cross-platform discovery | gh repo edit --add-topic agentskills |
INDEX.md with description tabel |
human + LLM browse | scripts/generate-index.js |
Keywords: line in every SKILL.md frontmatter |
trigger-matching | manual / polish-pass agent |
Every SKILL.md description.Keywords: MUST mix three term types :
- Technical : exact API names, function names, error class names
- Symptom-based : "blank screen", "nothing shows", "app is slow"
- Plain-language : "how do I", "what is", "getting started"
Per Frappe v3.1.1 expansion : without symptom-based keywords, skills fail to trigger on real user prompts ("my page is slow" never matches "performance optimization" only).
scripts/validate-frontmatter.js enforces presence of Keywords: line. scripts/validate-emdash.js enforces colon-based headings (em-dashes break some markdown parsers and conflict with global typografie-regel).
When a major-version rewrite happens inside the same repo (Frappe v2 -> v3 pattern), add a "V-N Upgrade Context" block to CLAUDE.md immediately after Standing Orders. Contents :
- What changed in V-N (rename / new skills / removed skills)
- Migration script reference (e.g.
tools/rename_skills.py) - Key documents updated (MIGRATION-AGENT-SKILLS-STANDARD.md, ROADMAP.md, etc.)
- Reference to the V-N release tag
Prevents new sessions from operating on stale assumptions about pkg-structure. See https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package/blob/main/CLAUDE.md (lines around V2 Upgrade Context) for reference.
For Phase 5 skill creation with >15 skills, use tmux-orchestration skill instead of in-process Agent calls. Persistent workers with file-scope-isolation + quality-gate-loop scale better.
.vscode/tasks.json: worker-1/2/3 spawn tasks.claude/settings.json: bypass permissions ONstate/(gitignored) :messages.jsonl,sessions.yamlcreated bytmo init
- Main session invokes
tmux-orchestrationskill - Answers : 3 workers, VS Code panels, every-reply QG, Nederlands reply-language,
skill-builderrole - Per batch : 3 in-process opus agents for topic-research → bundle-inject batch to workers → quality-gate loop
- Workers run with
TMO_SESSION=worker-N TMO_STATE_DIR=<ws>/state - Quality-gate verdicts via
tmo task approve/reject
See BOOTSTRAP-RUNBOOK.md §6 for full integration.