- SessionStart hook now reads MANDATORY SKILL.md files and injects
full content into conversation context before any user interaction
- Uses XML-like tags (<hub-guide-skills>, <skill>) to structure context
- Keeps project detection for active skills
- Follows obra/superpowers pattern: load skill content before explore
- New engineering-principle: never #[allow], @ts-ignore, # noqa — fix instead
- Rust skill: add explicit #[allow(clippy::...)] anti-pattern with examples
- Also covers eslint-disable, ts-ignore, noqa, go vet
- Single exceptions: false positives, generated code, phased migration (<30d)
- CI enforcement commands for Rust/TS/Python/Go
- Add MANDATORY prefix to clean-code and clean-architecture descriptions
- Change 'core skills' to 'mandatory' in detect-project.sh output
- Both skills now always active, not just context-triggered
Remove English hardcoded sentences from detect-project.sh and detect-file-type.sh.
Output is now structured labels (emoji + key: value) without linguistic content.
- Add principle 27: 'Language-Agnostic Auto-Trigger' to engineering-principles
- Remove hardcoded English-only keyword lists from all 26 skill descriptions
- Replace with concept-based detection: triggers from code context, project files,
and file types regardless of spoken language
- Update detect-project.sh hook output with language-agnostic message
- Add principle #25 to engineering-principles: 'Ask When Ambiguous'
- Add 'Ask When Ambiguous' section to design-patterns and clean-architecture
- Update detect-project.sh hook to reinforce ask-don't-assume behavior
- hooks.json needs 'hooks' wrapper key at top level
- Remove 'hooks' field from plugin.json (auto-discovered from hooks/hooks.json)
- Simplify hook entries (no nested hooks array)
Not split per-skill directory. Single symlink/copy of the entire plugin. Skills are
auto-discovered from ~/.claude/skills/<name>/skills/<skill>/SKILL.md.