@namch/agent-assistant 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/agents/backend-engineer.md +3 -3
  3. package/agents/brainstormer.md +3 -3
  4. package/agents/business-analyst.md +3 -3
  5. package/agents/database-architect.md +3 -3
  6. package/agents/debugger.md +2 -2
  7. package/agents/designer.md +2 -2
  8. package/agents/devops-engineer.md +2 -2
  9. package/agents/docs-manager.md +23 -15
  10. package/agents/frontend-engineer.md +3 -3
  11. package/agents/game-engineer.md +3 -3
  12. package/agents/mobile-engineer.md +4 -4
  13. package/agents/performance-engineer.md +3 -3
  14. package/agents/planner.md +4 -4
  15. package/agents/project-manager.md +3 -3
  16. package/agents/researcher.md +3 -3
  17. package/agents/reviewer.md +3 -3
  18. package/agents/scouter.md +3 -3
  19. package/agents/security-engineer.md +3 -3
  20. package/agents/tech-lead.md +3 -3
  21. package/agents/tester.md +2 -2
  22. package/commands/docs/audit.md +554 -78
  23. package/commands/docs/business.md +392 -76
  24. package/commands/docs/core.md +573 -74
  25. package/commands/docs.md +62 -61
  26. package/documents/business/business-features/00-index.md +101 -0
  27. package/documents/business/business-features/01-feature-inventory.md +341 -0
  28. package/documents/business/business-features/02-prioritization-moscow.md +148 -0
  29. package/documents/business/business-features/03-feature-specifications.md +512 -0
  30. package/documents/business/business-features/04-dependencies-and-release-sequencing.md +313 -0
  31. package/documents/business/business-features/05-success-metrics.md +290 -0
  32. package/documents/business/business-glossary/00-index.md +89 -0
  33. package/documents/business/business-glossary/01-canonical-terms.md +428 -0
  34. package/documents/business/business-glossary/02-synonyms-and-deprecated-terms.md +180 -0
  35. package/documents/business/business-glossary/03-domain-entities-and-events.md +395 -0
  36. package/documents/business/business-glossary/04-api-term-mapping.md +173 -0
  37. package/documents/business/business-prd/00-index.md +107 -0
  38. package/documents/business/business-prd/01-executive-summary.md +131 -0
  39. package/documents/business/business-prd/02-problem-goals-and-scope.md +204 -0
  40. package/documents/business/business-prd/03-stakeholders-and-requirements.md +210 -0
  41. package/documents/business/business-prd/04-acceptance-risks-assumptions.md +246 -0
  42. package/documents/business/business-workflows/00-index.md +107 -0
  43. package/documents/business/business-workflows/01-actor-map.md +303 -0
  44. package/documents/business/business-workflows/02-workflow-catalog.md +252 -0
  45. package/documents/business/business-workflows/03-detailed-workflows.md +641 -0
  46. package/documents/business/business-workflows/04-decision-rules-and-exceptions.md +216 -0
  47. package/documents/business/business-workflows/05-sla-and-handoffs.md +253 -0
  48. package/documents/knowledge-architecture/00-index.md +159 -0
  49. package/documents/knowledge-architecture/01-system-overview.md +240 -0
  50. package/documents/knowledge-architecture/02-components.md +419 -0
  51. package/documents/knowledge-architecture/03-data-flow.md +369 -0
  52. package/documents/knowledge-architecture/04-design-patterns.md +498 -0
  53. package/documents/knowledge-architecture/05-decisions.md +410 -0
  54. package/documents/knowledge-domain/00-index.md +251 -0
  55. package/documents/knowledge-domain/01-entities.md +583 -0
  56. package/documents/knowledge-domain/02-database-schema.md +138 -0
  57. package/documents/knowledge-domain/03-api-contracts.md +479 -0
  58. package/documents/knowledge-domain/04-business-rules.md +555 -0
  59. package/documents/knowledge-overview/00-index.md +107 -0
  60. package/documents/knowledge-overview/01-project-identity.md +162 -0
  61. package/documents/knowledge-overview/02-tech-stack.md +119 -0
  62. package/documents/knowledge-overview/03-features.md +233 -0
  63. package/documents/knowledge-overview/04-getting-started.md +394 -0
  64. package/documents/knowledge-source-base/00-index.md +107 -0
  65. package/documents/knowledge-source-base/01-directory-structure.md +312 -0
  66. package/documents/knowledge-source-base/02-entry-points.md +346 -0
  67. package/documents/knowledge-source-base/03-key-modules.md +582 -0
  68. package/documents/knowledge-source-base/04-configuration.md +467 -0
  69. package/documents/knowledge-standards/00-index.md +129 -0
  70. package/documents/knowledge-standards/01-code-style.md +161 -0
  71. package/documents/knowledge-standards/02-conventions.md +255 -0
  72. package/documents/knowledge-standards/03-git-workflow.md +228 -0
  73. package/documents/knowledge-standards/04-testing-standards.md +175 -0
  74. package/package.json +1 -1
  75. package/rules/REFERENCE.md +10 -6
  76. package/skills/docs-audit/README.md +10 -8
  77. package/skills/docs-audit/SKILL.md +45 -41
  78. package/skills/docs-audit/references/scoring-framework.md +5 -5
  79. package/skills/docs-core/README.md +19 -14
  80. package/skills/docs-core/SKILL.md +189 -117
  81. package/skills/planning/references/codebase-understanding.md +5 -5
  82. package/documents/business/business-features.md +0 -894
  83. package/documents/business/business-glossary.md +0 -554
  84. package/documents/business/business-prd.md +0 -400
  85. package/documents/business/business-workflows.md +0 -713
  86. package/documents/knowledge-architecture.md +0 -621
  87. package/documents/knowledge-domain.md +0 -602
  88. package/documents/knowledge-overview.md +0 -316
  89. package/documents/knowledge-source-base.md +0 -581
  90. package/documents/knowledge-standards.md +0 -632
@@ -0,0 +1,161 @@
1
+ # Agent Assistant — Code Style Standards
2
+
3
+ > **Purpose**: Formatting rules and naming conventions for every content type in the project, derived from observed patterns and tool configuration
4
+ > **Parent**: [00-index.md](./00-index.md)
5
+ > **Last Updated**: 2026-03-26
6
+ > **Generated By**: docs-core skill
7
+
8
+ ---
9
+
10
+ ## Formatter Status
11
+
12
+ Agent Assistant has **no project-wide code formatter**. There is no Prettier configuration (`.prettierrc`, `.prettierrc.json`, or `prettier` in `package.json`). There is no editorconfig (`.editorconfig`). Formatting consistency is maintained by convention, not tooling.
13
+
14
+ **Web sub-project exception**: The `web/` directory uses ESLint ^9.39.1 with `typescript-eslint` and React plugins, which enforces some code quality rules but is not a formatter.
15
+
16
+ ---
17
+
18
+ ## Naming Conventions by Content Type
19
+
20
+ ### Markdown — Agent Files (`agents/*.md`)
21
+
22
+ | Element | Convention | Example |
23
+ |---------|-----------|---------|
24
+ | File name | kebab-case | `backend-engineer.md`, `docs-manager.md` |
25
+ | YAML `name` field | kebab-case (matches filename without extension) | `name: backend-engineer` |
26
+ | YAML `description` | Sentence case with role title | `"Principal Backend Architect — server-side logic, API design"` |
27
+ | YAML `profile` | `domain:category` format | `"backend:execution"`, `"research:exploration"` |
28
+ | YAML `handoffs` | Array of kebab-case agent names | `[tester, database-architect, performance-engineer]` |
29
+ | YAML `version` | Quoted semver string | `"1.0"` |
30
+ | YAML `category` | Lowercase single word | `execution`, `validation`, `research`, `support`, `meta` |
31
+ | Section headers | `## ` with emoji prefix | `## ⚡ Skills`, `## 🎯 Expert Mindset` |
32
+ | Agent ID format | `agent:kebab-case-name` | `agent:backend-engineer` |
33
+
34
+ ### Markdown — Command Files (`commands/*.md`)
35
+
36
+ | Element | Convention | Example |
37
+ |---------|-----------|---------|
38
+ | File name | kebab-case | `cook.md`, `brainstorm.md` |
39
+ | YAML `description` | Sentence with emoji prefix | `"🍳 Cook Router — Route to feature implementation workflows"` |
40
+ | YAML `version` | Quoted semver string | `"1.0"` |
41
+ | YAML `category` | Lowercase word | `engineering`, `quality`, `planning`, `documentation` |
42
+ | YAML `execution-mode` | Lowercase keyword | `router`, `execute` |
43
+ | Variant files | kebab-case in subdirectories | `commands/cook/fast.md`, `commands/cook/hard.md` |
44
+
45
+ ### Markdown — Rule Files (`rules/*.md`)
46
+
47
+ | Element | Convention | Example |
48
+ |---------|-----------|---------|
49
+ | File name | UPPER_CASE | `CORE.md`, `PHASES.md`, `AGENTS.md` |
50
+ | Primary header | `# ` without emoji | `# CORE RULES` |
51
+ | Sections | `## ` with optional emoji | `## ⚡ Tiered Execution` |
52
+
53
+ ### Markdown — Document Files (`documents/**/*.md`)
54
+
55
+ | Element | Convention | Example |
56
+ |---------|-----------|---------|
57
+ | Directory name | kebab-case | `knowledge-overview/`, `knowledge-standards/` |
58
+ | File name | Numbered prefix + kebab-case | `00-index.md`, `01-project-identity.md` |
59
+ | Index file | Always `00-index.md` | `documents/knowledge-overview/00-index.md` |
60
+ | Header block | Standardized metadata block with Purpose, Parent, Last Updated, Generated By | See sub-file header template |
61
+
62
+ ### Markdown — Platform Entry Files (root)
63
+
64
+ | Element | Convention | Example |
65
+ |---------|-----------|---------|
66
+ | File name | UPPER_CASE | `CLAUDE.md`, `COPILOT.md`, `CURSOR.md`, `CODEX.md`, `GEMINI.md` |
67
+
68
+ ### YAML — Matrix Skill Files (`matrix-skills/*.yaml`)
69
+
70
+ | Element | Convention | Example |
71
+ |---------|-----------|---------|
72
+ | File name | kebab-case | `backend.yaml`, `ai-ml.yaml`, `frontend.yaml` |
73
+ | Special files | Underscore prefix | `_index.yaml`, `_dynamic.yaml` |
74
+ | Skill keys | kebab-case | `express-rest-api`, `graphql-schema-design` |
75
+
76
+ ### JavaScript — CLI (`cli/*.js`)
77
+
78
+ | Element | Convention | Example |
79
+ |---------|-----------|---------|
80
+ | File name | camelCase | `install.js` |
81
+ | Module system | CommonJS (`require`/`module.exports`) | `const fs = require('node:fs')` |
82
+ | Node built-in imports | `node:` prefix protocol | `require('node:fs')`, `require('node:path')` |
83
+ | Functions | camelCase | `ensureDir()`, `copyWithReplace()`, `copyFileWithReplace()` |
84
+ | Constants | camelCase (local scoped) | `const installPath = ...` |
85
+ | Global constants | UPPER_SNAKE_CASE | `const PLATFORMS = { ... }` |
86
+ | File header | JSDoc-style comment block | `/** Agent Assistant CLI Installer */` |
87
+ | Shebang | Present in entry point | `#!/usr/bin/env node` |
88
+
89
+ ### TypeScript/TSX — Web (`web/src/**/*.{ts,tsx}`)
90
+
91
+ | Element | Convention | Example |
92
+ |---------|-----------|---------|
93
+ | Component files | PascalCase `.tsx` | `App.tsx` |
94
+ | Entry point | camelCase `.tsx` | `main.tsx` |
95
+ | Module system | ES Modules (`import`/`export`) | `import App from './App'` |
96
+ | Components | PascalCase function names | `function App()` |
97
+ | CSS classes | Tailwind utility classes | `className="flex items-center"` |
98
+
99
+ ---
100
+
101
+ ## Indentation and Whitespace
102
+
103
+ No enforced standard. Observed patterns:
104
+
105
+ | Context | Observed | Notes |
106
+ |---------|----------|-------|
107
+ | Markdown files | 2-space or no indentation (flat structure) | No enforcement |
108
+ | YAML frontmatter | 2-space indentation | YAML standard |
109
+ | JavaScript (CLI) | 2 or 4-space (inconsistent) | No Prettier, no editorconfig |
110
+ | TypeScript (web) | Follows ESLint defaults | ESLint does not enforce indent by default |
111
+ | JSON (package.json) | 2-space indentation | npm default |
112
+
113
+ ---
114
+
115
+ ## Line Endings and Encoding
116
+
117
+ No `.editorconfig` or `.gitattributes` to enforce line endings or charset. The project relies on OS and editor defaults.
118
+
119
+ ---
120
+
121
+ ## Linting Tools
122
+
123
+ | Scope | Tool | Config File | Enforcement |
124
+ |-------|------|-------------|-------------|
125
+ | CLI JavaScript | `node --check` | None (built-in syntax check) | `npm run lint` — validates syntax only, no style rules |
126
+ | Web TypeScript/TSX | ESLint ^9.39.1 + typescript-eslint | `web/eslint.config.js` | Flat config format, includes react-hooks and react-refresh plugins |
127
+ | Markdown | markdownlint (suggested) | None | `npm run lint:md` echoes a suggestion to run `npx markdownlint` manually |
128
+ | YAML | None | — | No YAML linter configured |
129
+
130
+ ---
131
+
132
+ ## ESLint Configuration (Web Only)
133
+
134
+ The web sub-project uses ESLint 9 flat config format:
135
+
136
+ - **Parser**: typescript-eslint
137
+ - **Extends**: `js.configs.recommended`, `tseslint.configs.recommended`
138
+ - **Plugins**: `eslint-plugin-react-hooks` (flat recommended), `eslint-plugin-react-refresh` (Vite config)
139
+ - **Target**: `**/*.{ts,tsx}` files
140
+ - **Ignores**: `dist/`
141
+ - **ECMAScript version**: 2020
142
+ - **Globals**: browser
143
+
144
+ ---
145
+
146
+ ## Evidence Sources
147
+
148
+ | Source | Path |
149
+ |--------|------|
150
+ | Package manifest (scripts, no Prettier) | [../../package.json](../../package.json) |
151
+ | Web ESLint flat config | [../../web/eslint.config.js](../../web/eslint.config.js) |
152
+ | Agent file — frontmatter + naming | [../../agents/backend-engineer.md](../../agents/backend-engineer.md) |
153
+ | Command file — frontmatter + naming | [../../commands/cook.md](../../commands/cook.md) |
154
+ | Rule file — naming pattern | [../../rules/CORE.md](../../rules/CORE.md) |
155
+ | CLI entry point — JS conventions | [../../cli/install.js](../../cli/install.js) |
156
+ | Web component — TSX conventions | [../../web/src/App.tsx](../../web/src/App.tsx) |
157
+ | Web entry — TSX conventions | [../../web/src/main.tsx](../../web/src/main.tsx) |
158
+ | Matrix skill file — YAML naming | [../../matrix-skills/backend.yaml](../../matrix-skills/backend.yaml) |
159
+ | Special matrix files | [../../matrix-skills/_index.yaml](../../matrix-skills/_index.yaml), [../../matrix-skills/_dynamic.yaml](../../matrix-skills/_dynamic.yaml) |
160
+ | Platform entry files | [../../CLAUDE.md](../../CLAUDE.md), [../../COPILOT.md](../../COPILOT.md), [../../CURSOR.md](../../CURSOR.md) |
161
+ | Document index example | [../knowledge-overview/00-index.md](../knowledge-overview/00-index.md) |
@@ -0,0 +1,255 @@
1
+ # Agent Assistant — Conventions
2
+
3
+ > **Purpose**: File/directory organization patterns, YAML frontmatter conventions, import patterns, module structure, comment standards, and document numbering conventions
4
+ > **Parent**: [00-index.md](./00-index.md)
5
+ > **Last Updated**: 2026-03-26
6
+ > **Generated By**: docs-core skill
7
+
8
+ ---
9
+
10
+ ## Directory Organization
11
+
12
+ ### Root-Level Structure
13
+
14
+ ```
15
+ agent-assistant/
16
+ ├── agents/ # 21 specialist agent definitions
17
+ │ └── teams/ # 17 team configurations (3 roles each)
18
+ ├── cli/ # CLI installer (CommonJS JavaScript)
19
+ ├── code-assistants/ # Platform-specific assistant configs
20
+ │ ├── antigravity-assistant/
21
+ │ ├── claude-assistant/
22
+ │ ├── codex-assistant/
23
+ │ ├── copilot-assistant/
24
+ │ └── cursor-assistant/
25
+ ├── commands/ # 14 command routers + variant subdirs
26
+ │ ├── cook.md # Router file
27
+ │ └── cook/ # Variant subdirectory
28
+ │ ├── fast.md
29
+ │ ├── hard.md
30
+ │ ├── focus.md
31
+ │ └── team.md
32
+ ├── documents/ # Project knowledge base
33
+ │ ├── knowledge-overview/
34
+ │ ├── knowledge-architecture/
35
+ │ ├── knowledge-domain/
36
+ │ ├── knowledge-source-base/
37
+ │ └── knowledge-standards/
38
+ ├── matrix-skills/ # 19 domain YAML registries + index
39
+ ├── rules/ # 7 governance rule files
40
+ ├── skills/ # 1,430+ skill module directories
41
+ ├── web/ # Marketing website (React 19 + Vite)
42
+ ├── CLAUDE.md # Platform entry files (UPPER_CASE)
43
+ ├── COPILOT.md
44
+ ├── CURSOR.md
45
+ ├── CODEX.md
46
+ ├── GEMINI.md
47
+ ├── AGENT.md
48
+ ├── AGENT-TEMPLATE.md
49
+ └── package.json
50
+ ```
51
+
52
+ ### Pattern Rules
53
+
54
+ | Pattern | Where | Rule |
55
+ |---------|-------|------|
56
+ | kebab-case directories | `agents/teams/`, `commands/*/`, `skills/*/`, `documents/*/`, `code-assistants/*/` | All multi-word directory names use hyphens |
57
+ | kebab-case `.md` files | `agents/`, `commands/` | Agent and command files match their directory convention |
58
+ | UPPER_CASE `.md` files | Root level, `rules/` | Reserved for platform entries (`CLAUDE.md`) and governance rules (`CORE.md`) |
59
+ | Numbered prefix files | `documents/*/` | All knowledge base files begin with `NN-` (00, 01, 02...) |
60
+ | Underscore prefix | `matrix-skills/` only | Reserved for meta-files: `_index.yaml`, `_dynamic.yaml` |
61
+ | Fixed role names | `agents/teams/*/` | Team directories always contain `techlead.md`, `executor.md`, `reviewer.md` |
62
+
63
+ ---
64
+
65
+ ## Document Numbering Convention
66
+
67
+ All files within `documents/` knowledge folders follow a numbered prefix scheme:
68
+
69
+ | Prefix | Purpose | Required |
70
+ |--------|---------|----------|
71
+ | `00-` | Index file — TOC, summary, cross-references | Yes (every knowledge folder) |
72
+ | `01-` through `NN-` | Content files in logical reading order | As needed |
73
+
74
+ - Numbering is zero-padded to two digits: `00`, `01`, `02`, ... `99`
75
+ - The `00-index.md` file is always the entry point for any knowledge folder
76
+ - Sub-files reference `./00-index.md` as their Parent in the header block
77
+ - File names after the prefix use kebab-case: `01-project-identity.md`, `03-git-workflow.md`
78
+
79
+ ---
80
+
81
+ ## YAML Frontmatter Conventions
82
+
83
+ ### Agent Frontmatter Schema
84
+
85
+ Every agent file in `agents/*.md` begins with YAML frontmatter:
86
+
87
+ ```yaml
88
+ ---
89
+ name: backend-engineer # kebab-case, matches filename
90
+ description: "Principal Backend Architect — server-side logic, API design, scalable systems"
91
+ profile: "backend:execution" # domain:category format
92
+ handoffs: [tester, database-architect, performance-engineer, devops-engineer]
93
+ version: "1.0" # quoted semver
94
+ category: execution # one of: meta, execution, validation, research, support
95
+ ---
96
+ ```
97
+
98
+ **Field rules**:
99
+ - `name` — Must be kebab-case, must match the filename without `.md` extension
100
+ - `description` — Sentence case, includes role title and brief scope
101
+ - `profile` — Format is `domain:category` where domain maps to a matrix-skills file
102
+ - `handoffs` — Array of other agent names (kebab-case) this agent can delegate to
103
+ - `version` — Always a quoted string, semver format
104
+ - `category` — Enum: `meta`, `execution`, `validation`, `research`, `support`
105
+
106
+ ### Command Frontmatter Schema
107
+
108
+ Every command file in `commands/*.md` begins with YAML frontmatter:
109
+
110
+ ```yaml
111
+ ---
112
+ description: "🍳 Cook Router — Route to feature implementation workflows"
113
+ version: "1.0" # quoted semver
114
+ category: engineering # varies: engineering, quality, planning, documentation, etc.
115
+ execution-mode: router # "router" for main commands, "execute" for variants
116
+ ---
117
+ ```
118
+
119
+ **Field rules**:
120
+ - `description` — Begins with an emoji, followed by command name and summary
121
+ - `version` — Always a quoted string
122
+ - `category` — Lowercase, describes the command's domain
123
+ - `execution-mode` — Either `router` (dispatches to variants) or `execute` (runs directly)
124
+
125
+ ### Team Role Files
126
+
127
+ Team role files in `agents/teams/*/` do not use YAML frontmatter. They use Markdown structure directly with an attribute table.
128
+
129
+ ---
130
+
131
+ ## Import and Module Patterns
132
+
133
+ ### CLI — CommonJS (`cli/*.js`)
134
+
135
+ ```javascript
136
+ const fs = require('node:fs');
137
+ const path = require('node:path');
138
+ const os = require('node:os');
139
+ const readline = require('node:readline');
140
+ ```
141
+
142
+ **Rules**:
143
+ - All Node.js built-in imports use the `node:` prefix protocol
144
+ - No external dependencies (zero production dependencies)
145
+ - No `import`/`export` syntax — strictly CommonJS `require`/`module.exports`
146
+ - Functions are defined with `function` declarations or `const fn = () => {}` arrow syntax
147
+
148
+ ### Web — ES Modules (`web/src/**/*.{ts,tsx}`)
149
+
150
+ ```typescript
151
+ import App from './App'
152
+ import './index.css'
153
+ ```
154
+
155
+ **Rules**:
156
+ - Standard ES module `import`/`export` syntax
157
+ - React components use default exports
158
+ - CSS imported as side-effect imports
159
+ - Third-party imports before local imports (enforced by ESLint import ordering)
160
+
161
+ ---
162
+
163
+ ## Module Structure Patterns
164
+
165
+ ### CLI Entry Point (`cli/install.js`)
166
+
167
+ ```
168
+ #!/usr/bin/env node
169
+ /**
170
+ * JSDoc header block
171
+ */
172
+
173
+ // 1. Built-in imports (node: protocol)
174
+ // 2. Constants and configuration
175
+ // 3. Utility functions
176
+ // 4. Core business logic functions
177
+ // 5. CLI argument parsing and execution
178
+ ```
179
+
180
+ - Shebang line at top for direct execution via `npx` or `npm bin`
181
+ - Single-file architecture — all CLI logic in one `install.js` file
182
+ - No class-based patterns — functional approach throughout
183
+ - Functions are not exported (test file notes this as a blocker for unit testing)
184
+
185
+ ### Web Components (`web/src/*.tsx`)
186
+
187
+ ```
188
+ // 1. React and third-party imports
189
+ // 2. Local component imports
190
+ // 3. Style imports
191
+ // 4. Component function (PascalCase)
192
+ // 5. Default export
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Comment Standards
198
+
199
+ ### JavaScript (CLI)
200
+
201
+ - File-level: JSDoc block comment (`/** ... */`)
202
+ - Inline: `//` single-line comments for explanations
203
+ - No enforced JSDoc on functions (no JSDoc linting configured)
204
+
205
+ ### TypeScript (Web)
206
+
207
+ - Minimal comments observed
208
+ - ESLint does not enforce comment rules
209
+
210
+ ### Markdown (Agents, Commands, Rules)
211
+
212
+ - HTML comments used for cognitive anchors: `<!-- 🔒 COGNITIVE ANCHOR — ... -->`
213
+ - Blockquotes (`>`) used for binding directives and core directives
214
+ - YAML code blocks used for structured configuration display
215
+ - Emoji used in section headers for visual scanning
216
+
217
+ ### YAML (Matrix Skills)
218
+
219
+ - `#` comments for section separators and notes
220
+ - Inline comments rare
221
+
222
+ ---
223
+
224
+ ## Configuration File Conventions
225
+
226
+ | File | Format | Location | Purpose |
227
+ |------|--------|----------|---------|
228
+ | `package.json` | JSON | Root | npm manifest, scripts, dependencies |
229
+ | `.releaserc.json` | JSON | Root | semantic-release plugin configuration |
230
+ | `.gitignore` | Text | Root | Git exclusion patterns |
231
+ | `eslint.config.js` | ESM JavaScript | `web/` | ESLint 9 flat config |
232
+ | `tsconfig.json` | JSON | `web/` | TypeScript compiler options |
233
+ | `tsconfig.app.json` | JSON | `web/` | App-specific TS config (extends base) |
234
+ | `vite.config.ts` | TypeScript | `web/` | Vite build configuration |
235
+ | `tailwind.config.*` | Config | `web/` | Tailwind CSS v4 configuration |
236
+ | `_index.yaml` | YAML | `matrix-skills/` | Skill registry master index |
237
+ | `_dynamic.yaml` | YAML | `matrix-skills/` | Dynamic skill resolution rules |
238
+
239
+ ---
240
+
241
+ ## Evidence Sources
242
+
243
+ | Source | Path |
244
+ |--------|------|
245
+ | Agent frontmatter example | [../../agents/backend-engineer.md](../../agents/backend-engineer.md) |
246
+ | Command frontmatter example | [../../commands/cook.md](../../commands/cook.md) |
247
+ | CLI module structure | [../../cli/install.js](../../cli/install.js) |
248
+ | Web ESLint config (import patterns) | [../../web/eslint.config.js](../../web/eslint.config.js) |
249
+ | Web component example | [../../web/src/App.tsx](../../web/src/App.tsx) |
250
+ | Web entry point | [../../web/src/main.tsx](../../web/src/main.tsx) |
251
+ | Matrix skills index | [../../matrix-skills/_index.yaml](../../matrix-skills/_index.yaml) |
252
+ | Document index pattern | [../knowledge-overview/00-index.md](../knowledge-overview/00-index.md) |
253
+ | Document sub-file pattern | [../knowledge-overview/01-project-identity.md](../knowledge-overview/01-project-identity.md) |
254
+ | Package manifest | [../../package.json](../../package.json) |
255
+ | Test example (import patterns) | [../../cli/install.test.js.example](../../cli/install.test.js.example) |
@@ -0,0 +1,228 @@
1
+ # Agent Assistant — Git Workflow
2
+
3
+ > **Purpose**: Commit message format, semantic-release pipeline, branch naming, Husky hooks, and end-to-end release process
4
+ > **Parent**: [00-index.md](./00-index.md)
5
+ > **Last Updated**: 2026-03-26
6
+ > **Generated By**: docs-core skill
7
+
8
+ ---
9
+
10
+ ## Commit Message Format
11
+
12
+ Agent Assistant uses **Conventional Commits** as defined by the `conventionalcommits` preset in semantic-release. The format is:
13
+
14
+ ```
15
+ <type>(<scope>): <description>
16
+
17
+ [optional body]
18
+
19
+ [optional footer(s)]
20
+ ```
21
+
22
+ ### Commit Types and Release Impact
23
+
24
+ Configured in `.releaserc.json` via `@semantic-release/commit-analyzer`:
25
+
26
+ | Type | Release | Appears in Changelog | Section |
27
+ |------|---------|---------------------|---------|
28
+ | `feat` | **minor** | Yes | Features |
29
+ | `fix` | **patch** | Yes | Bug Fixes |
30
+ | `perf` | **patch** | Yes | Performance |
31
+ | `refactor` | **patch** | Yes | Refactoring |
32
+ | `docs` (scope: `README`) | **patch** | Yes | Documentation |
33
+ | `docs` (other scopes) | no release | Yes | Documentation |
34
+ | `chore` | no release | Hidden | — |
35
+ | `style` | no release | Hidden | — |
36
+ | `test` | no release | Hidden | — |
37
+ | `ci` | no release | Hidden (not in preset config) | — |
38
+ | `build` | no release | Hidden (not in preset config) | — |
39
+
40
+ ### Breaking Changes
41
+
42
+ Any commit with `breaking: true` (via `BREAKING CHANGE:` footer or `!` after type) triggers a **major** release regardless of commit type.
43
+
44
+ ### Commit Message Examples
45
+
46
+ ```
47
+ feat: add codex platform support to CLI installer
48
+
49
+ fix(cli): resolve path resolution on Windows for install command
50
+
51
+ perf: reduce file copy operations with batch processing
52
+
53
+ refactor: extract platform config into constants object
54
+
55
+ docs(README): update installation instructions for v1.3
56
+
57
+ chore: update devDependencies to latest versions
58
+
59
+ feat!: restructure agent YAML schema
60
+ BREAKING CHANGE: agent frontmatter now requires 'profile' field
61
+ ```
62
+
63
+ ### Scope Conventions (observed)
64
+
65
+ Scopes are optional. When used, they follow these observed patterns:
66
+
67
+ | Scope | Used For |
68
+ |-------|----------|
69
+ | `cli` | Changes to `cli/install.js` |
70
+ | `README` | README documentation changes (triggers patch release) |
71
+ | `web` | Changes to `web/` directory |
72
+ | `agents` | Agent definition changes |
73
+ | `commands` | Command file changes |
74
+ | `rules` | Rule file changes |
75
+ | `skills` | Skill module changes |
76
+ | `release` | Auto-generated release commits |
77
+
78
+ ---
79
+
80
+ ## Branch Strategy
81
+
82
+ ### Release Branch
83
+
84
+ Configured in `.releaserc.json`:
85
+
86
+ ```json
87
+ {
88
+ "branches": ["main"]
89
+ }
90
+ ```
91
+
92
+ - **`main`** is the sole release branch (config also accepts `master` as a fallback pattern)
93
+ - Releases are triggered by pushes to `main`
94
+ - No pre-release branches configured (`beta`, `alpha`, `next` — none)
95
+ - No maintenance branches configured
96
+
97
+ ### Branch Naming
98
+
99
+ No branch naming convention is enforced via tooling. No branch protection rules are visible in the repository configuration files. There is no `commitlint` or branch-name-lint installed.
100
+
101
+ ---
102
+
103
+ ## Semantic-Release Pipeline
104
+
105
+ The release pipeline is fully automated via `semantic-release` ^22.0.12 with the following plugin chain, executed in order:
106
+
107
+ ### Plugin Execution Order
108
+
109
+ | Step | Plugin | Action |
110
+ |------|--------|--------|
111
+ | 1 | `@semantic-release/commit-analyzer` | Analyzes commits since last release, determines version bump (major/minor/patch/none) |
112
+ | 2 | `@semantic-release/release-notes-generator` | Generates changelog content from commits using `conventionalcommits` preset |
113
+ | 3 | `@semantic-release/changelog` | Writes generated notes to `CHANGELOG.md` |
114
+ | 4 | `@semantic-release/npm` | Publishes package to npm registry (scoped public: `@namch/agent-assistant`) |
115
+ | 5 | `@semantic-release/git` | Commits updated `CHANGELOG.md` and `package.json`, creates git tag |
116
+ | 6 | `@semantic-release/github` | Creates GitHub Release with notes |
117
+
118
+ ### Release Commit Format
119
+
120
+ The `@semantic-release/git` plugin generates an auto-commit with this template:
121
+
122
+ ```
123
+ chore(release): ${nextRelease.version} [skip ci]
124
+
125
+ ${nextRelease.notes}
126
+ ```
127
+
128
+ The `[skip ci]` tag prevents infinite CI loops (relevant when CI/CD is eventually added).
129
+
130
+ ### Assets Committed by Release
131
+
132
+ ```json
133
+ {
134
+ "assets": ["CHANGELOG.md", "package.json"]
135
+ }
136
+ ```
137
+
138
+ Only `CHANGELOG.md` (updated content) and `package.json` (bumped version) are committed automatically.
139
+
140
+ ---
141
+
142
+ ## End-to-End Release Process
143
+
144
+ ```
145
+ 1. Developer commits to `main` using conventional commit format
146
+ 2. Run: npx semantic-release (or npm run semantic-release)
147
+ 3. commit-analyzer reads commits since last git tag
148
+ 4. Determines version bump (or skips if no releasable commits)
149
+ 5. release-notes-generator creates changelog entry
150
+ 6. changelog plugin writes to CHANGELOG.md
151
+ 7. npm plugin publishes @namch/agent-assistant@{new-version} to npm
152
+ 8. git plugin commits CHANGELOG.md + package.json, creates tag v{new-version}
153
+ 9. github plugin creates GitHub Release with notes
154
+ ```
155
+
156
+ There is no CI/CD pipeline to automate this. The `npx semantic-release` command must be run manually or via a future CI setup. The `npm run semantic-release` script is available as a convenience.
157
+
158
+ ---
159
+
160
+ ## Husky Git Hooks
161
+
162
+ Husky ^8.0.3 is installed as a dev dependency. The `prepare` script runs `husky install || true` on `npm install`.
163
+
164
+ ### Hook Directory
165
+
166
+ The `.husky/` directory exists at the project root. The `|| true` fallback in the prepare script ensures installation does not fail in environments where `.git/` is absent (e.g., npm package consumers).
167
+
168
+ ### Configured Hooks
169
+
170
+ Based on the `.husky/` directory listing, a pre-commit hook file exists (the directory contained a single `_` file at the time of inspection — this is the Husky internal directory marker). Specific hook scripts would be located at `.husky/pre-commit`, `.husky/commit-msg`, etc.
171
+
172
+ **What is NOT configured via hooks**:
173
+ - No `commitlint` — commit messages are not validated at commit time
174
+ - No `lint-staged` — no automatic linting of staged files
175
+ - No pre-push hooks observed
176
+
177
+ ---
178
+
179
+ ## PR and Merge Guidelines
180
+
181
+ No PR template (`.github/pull_request_template.md`) exists. No branch protection rules are configured in repository files. No merge strategy is enforced via configuration.
182
+
183
+ **Observed practice**: Direct commits to `main` are the apparent workflow, given the absence of CI/CD, branch protection, and PR templates.
184
+
185
+ ---
186
+
187
+ ## Git Ignore Patterns
188
+
189
+ The `.gitignore` excludes:
190
+
191
+ | Category | Patterns |
192
+ |----------|----------|
193
+ | Build outputs | `out`, `dist`, `*.vsix`, `.vscode-test` |
194
+ | Dependencies | `node_modules` |
195
+ | OS files | `.DS_Store`, `Thumbs.db` |
196
+ | Environment | `.env`, `.env.*` (but not `.env.example`) |
197
+ | Generated reports | `reports/` |
198
+ | Logs | `*.log`, `npm-debug.log*` |
199
+ | Coverage | `coverage/`, `.nyc_output/` |
200
+
201
+ ---
202
+
203
+ ## npm Publishing Configuration
204
+
205
+ ```json
206
+ {
207
+ "publishConfig": {
208
+ "access": "public"
209
+ }
210
+ }
211
+ ```
212
+
213
+ - Package is scoped (`@namch/agent-assistant`) and published with public access
214
+ - The `files` field in `package.json` explicitly lists included paths: `cli/`, `agents/`, `commands/`, `rules/`, `matrix-skills/`, `skills/`, `documents/`, `code-assistants/`, `LICENSE`, `README.md`, `CHANGELOG.md`
215
+ - The `web/` directory is excluded from the npm package
216
+
217
+ ---
218
+
219
+ ## Evidence Sources
220
+
221
+ | Source | Path |
222
+ |--------|------|
223
+ | Release configuration | [../../.releaserc.json](../../.releaserc.json) |
224
+ | Package manifest (scripts, hooks, publish config) | [../../package.json](../../package.json) |
225
+ | Changelog | [../../CHANGELOG.md](../../CHANGELOG.md) |
226
+ | Git ignore | [../../.gitignore](../../.gitignore) |
227
+ | Husky directory | `../../.husky/` |
228
+ | Dev dependencies (semantic-release ecosystem) | [../../package.json](../../package.json) — `devDependencies` section |