This project follows the 7-phase research-first methodology proven in the ERPNext Skill Package (28 skills), Blender-Bonsai Skill Package (73 skills), and Tauri Skill Package (27 skills). The methodology ensures deterministic, high-quality skills by mandating deep research before any skill creation.
Core principle: You cannot create deterministic skills for something you don't deeply understand.
- Define project scope and Fluent coverage areas
- Create preliminary skill inventory (estimate, not final)
- Set up repository structure and core files
- Establish protocols (CLAUDE.md)
- Output:
docs/masterplan/fluent-masterplan.md, CLAUDE.md, ROADMAP.md
- One comprehensive research document for Project Fluent
- Cover: FTL specification, @fluent/bundle API, @fluent/react integration, language negotiation, common patterns, anti-patterns
- Minimum 2000 words
- Must include: version matrix, API overview, FTL examples, error patterns
- Output:
docs/research/vooronderzoek-fluent.md
- Review research against preliminary skill inventory
- Add, merge, or remove skills based on findings
- Define dependencies between skills
- Write ready-to-use prompts for each skill (so agents can execute directly)
- Output: updated
docs/masterplan/fluent-masterplan.md, updated ROADMAP.md
- Before each skill: focused research document
- Only the information that specific skill needs
- Verify against official documentation using WebFetch (D-009)
- Collect and validate FTL and TypeScript examples
- Identify anti-patterns from real issues
- Output:
docs/research/topic-research/{skill-name}-research.md
- Transform research into deterministic skills
- Follow skill structure strictly (see below)
- Execute in batches of 3 agents via Claude Code Agent tool
- Quality gate after every batch
- Output:
skills/source/fluent-{category}/{skill-name}/
- Structural validation (frontmatter, line count, references)
- Content validation (deterministic language, English-only, FTL+TS dual coverage)
- Cross-reference validation (skills reference each other correctly)
- Functional validation (test with real Claude Code questions)
- Output: validation report
- Update INDEX.md with complete skill catalog
- Update README.md with installation instructions
- Final ROADMAP.md update to 100%
- Release tag on GitHub
skill-name/
├── SKILL.md # Main file, < 500 lines
└── references/
├── methods.md # Complete API signatures (FTL + TypeScript)
├── examples.md # Working code examples (both languages)
└── anti-patterns.md # What NOT to do
---
name: fluent-{category}-{topic}
description: "Deterministic [description]. Use this skill when Claude needs to [trigger scenario]..."
---Content sections (in order):
- Quick Reference (critical warnings, decision trees)
- Essential Patterns (with FTL AND TypeScript code)
- Common Operations (code snippets)
- Reference Links (to references/ files)
fluent-{category}-{topic}- Prefix:
fluent-(single technology, single prefix) - Categories: syntax, impl, errors, core, agents
- Examples:
fluent-syntax-messages,fluent-impl-react,fluent-errors-parsing,fluent-core-architecture
- Use imperative, deterministic language: "ALWAYS use X when Y", "NEVER do X because Y"
- Verify all FTL against the official Fluent specification
- Show BOTH FTL files and TypeScript integration code for integration patterns (D-007)
- Provide working examples that parse correctly (FTL) and type-check (TypeScript)
- Document anti-patterns with explanations
- Use decision trees for common choices
- Keep SKILL.md under 500 lines
- Include complete FTL examples with proper indentation
- Use vague language: "you might consider", "it's often good practice"
- Make assumptions about FTL behavior not in the specification
- Confuse Fluent syntax with ICU MessageFormat or other i18n formats
- Show only FTL without TypeScript or vice versa for integration skills
- Include speculative features or unreleased APIs
- Write skills in any language other than English
- Use training data without WebFetch verification (D-009)
- Main session = ORCHESTRATOR (coordinates, validates, never does work)
- Workers = agents spawned via Claude Code Agent tool
- Results collected automatically when agents complete
- 3 agents per batch (optimal for Claude Code Agent tool)
- Each agent writes to its own unique directory (no file conflicts)
- Quality gate between batches
- Orchestrator does QA after each batch before starting next
- YAML frontmatter present and valid?
- Line count < 500?
- English-only?
- Deterministic language?
- FTL + TypeScript dual coverage (for integration skills)?
- Sources traceable to SOURCES.md?
- All referenced files exist?
- Commit after EVERY completed phase
- Commit message format:
Phase X.Y: [action] [subject] - ROADMAP.md updated with every commit
- NEVER track status in multiple places (ROADMAP.md is the ONLY source)
When starting a new session or recovering from interruption:
- Read ROADMAP.md (what's done, what's next)
- Read LESSONS.md (recent discoveries)
- Check git log (last commits)
- Identify where we left off
- Confirm with user before continuing
Skills are instructions FOR Claude, not for end users. Claude reads English and responds in ANY language the user speaks. Creating bilingual skills doubles maintenance with zero functional benefit. ALL skills MUST be in English.
- ERPNext Skill Package: https://github.com/OpenAEC-Foundation/ERPNext_Anthropic_Claude_Development_Skill_Package
- Blender-Bonsai Skill Package: https://github.com/OpenAEC-Foundation/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package
- Tauri Skill Package: https://github.com/OpenAEC-Foundation/Tauri-2-Claude-Skill-Package