Conversation
Replace monolithic AGENTS.md + .ai/ extended docs with a structured Packmind-style layout (local-only, no Packmind org/CLI): Standards (4): - ouds-code-conventions.md - ouds-accessibility-wcag.md - ouds-design-tokens.md - ouds-component-patterns.md Commands (4): - ouds-diagnose-error.md - ouds-create-component.md - ouds-decision-routing.md - ouds-lookup.md Skills (3): - ouds-token-strategy.md - ouds-multi-brand-sync.md - ouds-knowledge-base.md Copilot integration: .github/copilot-instructions.md (applyTo: **)
✅ Deploy Preview for boosted ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Pull request overview
This PR introduces Packmind playbook artifacts (standards/commands/skills) and wires them into GitHub Copilot instructions to codify OUDS Web conventions (tokens, component patterns, accessibility, and workflows).
Changes:
- Add OUDS-specific Packmind standards for tokens, component patterns, code conventions, and WCAG accessibility.
- Add OUDS-specific Packmind commands for token validation, decision routing, error diagnosis, lookup, and component creation.
- Add Packmind skill packages (including a playbook update workflow) plus a unified
.github/copilot-instructions.mdentrypoint.
Reviewed changes
Copilot reviewed 43 out of 43 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| .packmind/standards/ouds-design-tokens.md | Document token-layer usage rules |
| .packmind/standards/ouds-component-patterns.md | Define SCSS/JS component patterns |
| .packmind/standards/ouds-code-conventions.md | Define HTML/SCSS/JS conventions |
| .packmind/standards/ouds-accessibility-wcag.md | Document WCAG 2.1 AA requirements |
| .packmind/skills/ouds-token-strategy.md | Explain token architecture & dark mode |
| .packmind/skills/ouds-multi-brand-sync.md | Explain multi-brand structure & workflow |
| .packmind/skills/ouds-knowledge-base.md | Provide glossary + build/CI reference |
| .packmind/commands/ouds-validate-tokens.md | Add token audit workflow |
| .packmind/commands/ouds-lookup.md | Add quick routing index |
| .packmind/commands/ouds-diagnose-error.md | Add lint/build/test diagnosis workflow |
| .packmind/commands/ouds-decision-routing.md | Add decision trees for common tasks |
| .packmind/commands/ouds-create-component.md | Add end-to-end component creation workflow |
| .github/skills/packmind-update-playbook/SKILL.md | Define Packmind playbook update workflow |
| .github/skills/packmind-update-playbook/references/domain-standards.md | Standards analysis reference |
| .github/skills/packmind-update-playbook/references/domain-skills.md | Skills analysis reference |
| .github/skills/packmind-update-playbook/references/domain-commands.md | Commands analysis reference |
| .github/skills/packmind-update-playbook/references/agent-skills-specification.md | Agent skills format reference |
| .github/skills/packmind-update-playbook/LICENSE.txt | License for update-playbook skill |
| .github/skills/packmind-onboard/README.md | Onboarding skill README |
| .github/skills/packmind-onboard/LICENSE.txt | License for onboard skill |
| .github/skills/packmind-onboard/references/test-data-construction.md | Onboard reference: test data patterns |
| .github/skills/packmind-onboard/references/role-taxonomy-drift.md | Onboard reference: role drift analysis |
| .github/skills/packmind-onboard/references/file-template-consistency.md | Onboard reference: template detection |
| .github/skills/packmind-onboard/references/ci-local-workflow-parity.md | Onboard reference: CI/local parity |
| .github/skills/packmind-create-standard/SKILL.md | Skill: create standards via CLI |
| .github/skills/packmind-create-standard/README.md | README for create-standard skill |
| .github/skills/packmind-create-standard/LICENSE.txt | License for create-standard skill |
| .github/skills/packmind-create-skill/SKILL.md | Skill: create skills + prerequisites |
| .github/skills/packmind-create-skill/scripts/quick_validate.py | Script: validate skill structure |
| .github/skills/packmind-create-skill/scripts/init_skill.py | Script: scaffold new skill |
| .github/skills/packmind-create-skill/README.md | README for create-skill skill |
| .github/skills/packmind-create-skill/LICENSE.txt | License for create-skill skill |
| .github/skills/packmind-create-package/SKILL.md | Skill: create packages via CLI |
| .github/skills/packmind-create-package/README.md | README for create-package skill |
| .github/skills/packmind-create-package/LICENSE.txt | License for create-package skill |
| .github/skills/packmind-create-command/SKILL.md | Skill: create commands via CLI |
| .github/skills/packmind-create-command/README.md | README for create-command skill |
| .github/skills/packmind-create-command/LICENSE.txt | License for create-command skill |
| .github/skills/packmind-cli-list-commands/SKILL.md | Skill: list Packmind artifacts via CLI |
| .github/skills/packmind-cli-list-commands/README.md | README for CLI list-commands skill |
| .github/skills/packmind-cli-list-commands/LICENSE.txt | License for CLI list-commands skill |
| .github/copilot-instructions.md | Aggregate OUDS Packmind guidance for Copilot |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Commands are reusable multi-step workflows distributed to AI coding agents. Each command has a name, summary, "when to use" list, context validation checkpoints, and numbered steps. Source files live in `**/.packmind/commands/<slug>.md`. Installed copies also exist in agent directories: | ||
| - Claude Code: `**/.claude/commands/` | ||
| - Cursor: `**/.cursor/commands/` | ||
| - GitHub Copilot: `**/.github/prompt/` |
There was a problem hiding this comment.
The installed-copy path for GitHub Copilot commands is inconsistent with the rest of this playbook (.github/prompts/ is used elsewhere) and looks like a typo (prompt vs prompts). Please align this path (and any other references) so the workflow points to the correct directory.
| - GitHub Copilot: `**/.github/prompt/` | |
| - GitHub Copilot: `**/.github/prompts/` |
| ### Use CSS custom properties for all color values — enables dark mode | ||
|
|
||
| Color tokens come in light/dark pairs (`$ouds-color-action-enabled-light` / `$ouds-color-action-enabled-dark`). These are exposed as CSS custom properties. Always use `var(--#{$prefix}color-*)` to enable runtime color-mode switching. | ||
|
|
There was a problem hiding this comment.
This rule mandates using var(--#{$prefix}color-*) for all color values, but the codebase frequently uses $ouds-color-* variables (which are already redefined to var(--#{$prefix}...) in packages/*/scss/tokens/_semantic-colors-custom-props.scss). As written, this standard conflicts with existing component patterns and may cause confusing guidance. Consider updating the wording to forbid only the *-light/*-dark SCSS variables, and allow either var(--#{$prefix}color-*) or $ouds-color-* (post-bridge) as equivalent dark-mode-safe choices.
| ### SCSS: always use OUDS design tokens — never hardcode values | ||
|
|
||
| Never hardcode colors, dimensions, or spacing. Use semantic tokens for spacing, CSS custom properties for colors, and component tokens for component-specific values. | ||
|
|
There was a problem hiding this comment.
This section implies colors must be referenced via var(--#{$prefix}color-*), but existing SCSS commonly uses $ouds-color-* (which already resolves to var(...) via the semantic-colors custom-props bridge). Consider clarifying that $ouds-color-* is also acceptable, and only the *-light/*-dark variables are forbidden in components.
| # Extract name for validation | ||
| name_match = re.search(r'name:\s*(.+)', frontmatter) | ||
| if name_match: | ||
| name = name_match.group(1).strip() | ||
| # Check naming convention (hyphen-case: lowercase with hyphens) | ||
| if not re.match(r'^[a-z0-9-]+$', name): | ||
| return False, f"Name '{name}' should be hyphen-case (lowercase letters, digits, and hyphens only)" | ||
| if name.startswith('-') or name.endswith('-') or '--' in name: | ||
| return False, f"Name '{name}' cannot start/end with hyphen or contain consecutive hyphens" |
There was a problem hiding this comment.
quick_validate.py extracts name: with a regex and then validates it against ^[a-z0-9-]+$, which will fail for valid YAML like name: 'packmind-create-skill' (quotes included). Either parse YAML properly or strip surrounding quotes before applying the regex, otherwise this validator will reject the skills in this repo.
Click the
Previewtab and select a PR template: