@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.
- package/CHANGELOG.md +11 -1
- package/agents/backend-engineer.md +3 -3
- package/agents/brainstormer.md +3 -3
- package/agents/business-analyst.md +3 -3
- package/agents/database-architect.md +3 -3
- package/agents/debugger.md +2 -2
- package/agents/designer.md +2 -2
- package/agents/devops-engineer.md +2 -2
- package/agents/docs-manager.md +23 -15
- package/agents/frontend-engineer.md +3 -3
- package/agents/game-engineer.md +3 -3
- package/agents/mobile-engineer.md +4 -4
- package/agents/performance-engineer.md +3 -3
- package/agents/planner.md +4 -4
- package/agents/project-manager.md +3 -3
- package/agents/researcher.md +3 -3
- package/agents/reviewer.md +3 -3
- package/agents/scouter.md +3 -3
- package/agents/security-engineer.md +3 -3
- package/agents/tech-lead.md +3 -3
- package/agents/tester.md +2 -2
- package/commands/docs/audit.md +554 -78
- package/commands/docs/business.md +392 -76
- package/commands/docs/core.md +573 -74
- package/commands/docs.md +62 -61
- package/documents/business/business-features/00-index.md +101 -0
- package/documents/business/business-features/01-feature-inventory.md +341 -0
- package/documents/business/business-features/02-prioritization-moscow.md +148 -0
- package/documents/business/business-features/03-feature-specifications.md +512 -0
- package/documents/business/business-features/04-dependencies-and-release-sequencing.md +313 -0
- package/documents/business/business-features/05-success-metrics.md +290 -0
- package/documents/business/business-glossary/00-index.md +89 -0
- package/documents/business/business-glossary/01-canonical-terms.md +428 -0
- package/documents/business/business-glossary/02-synonyms-and-deprecated-terms.md +180 -0
- package/documents/business/business-glossary/03-domain-entities-and-events.md +395 -0
- package/documents/business/business-glossary/04-api-term-mapping.md +173 -0
- package/documents/business/business-prd/00-index.md +107 -0
- package/documents/business/business-prd/01-executive-summary.md +131 -0
- package/documents/business/business-prd/02-problem-goals-and-scope.md +204 -0
- package/documents/business/business-prd/03-stakeholders-and-requirements.md +210 -0
- package/documents/business/business-prd/04-acceptance-risks-assumptions.md +246 -0
- package/documents/business/business-workflows/00-index.md +107 -0
- package/documents/business/business-workflows/01-actor-map.md +303 -0
- package/documents/business/business-workflows/02-workflow-catalog.md +252 -0
- package/documents/business/business-workflows/03-detailed-workflows.md +641 -0
- package/documents/business/business-workflows/04-decision-rules-and-exceptions.md +216 -0
- package/documents/business/business-workflows/05-sla-and-handoffs.md +253 -0
- package/documents/knowledge-architecture/00-index.md +159 -0
- package/documents/knowledge-architecture/01-system-overview.md +240 -0
- package/documents/knowledge-architecture/02-components.md +419 -0
- package/documents/knowledge-architecture/03-data-flow.md +369 -0
- package/documents/knowledge-architecture/04-design-patterns.md +498 -0
- package/documents/knowledge-architecture/05-decisions.md +410 -0
- package/documents/knowledge-domain/00-index.md +251 -0
- package/documents/knowledge-domain/01-entities.md +583 -0
- package/documents/knowledge-domain/02-database-schema.md +138 -0
- package/documents/knowledge-domain/03-api-contracts.md +479 -0
- package/documents/knowledge-domain/04-business-rules.md +555 -0
- package/documents/knowledge-overview/00-index.md +107 -0
- package/documents/knowledge-overview/01-project-identity.md +162 -0
- package/documents/knowledge-overview/02-tech-stack.md +119 -0
- package/documents/knowledge-overview/03-features.md +233 -0
- package/documents/knowledge-overview/04-getting-started.md +394 -0
- package/documents/knowledge-source-base/00-index.md +107 -0
- package/documents/knowledge-source-base/01-directory-structure.md +312 -0
- package/documents/knowledge-source-base/02-entry-points.md +346 -0
- package/documents/knowledge-source-base/03-key-modules.md +582 -0
- package/documents/knowledge-source-base/04-configuration.md +467 -0
- package/documents/knowledge-standards/00-index.md +129 -0
- package/documents/knowledge-standards/01-code-style.md +161 -0
- package/documents/knowledge-standards/02-conventions.md +255 -0
- package/documents/knowledge-standards/03-git-workflow.md +228 -0
- package/documents/knowledge-standards/04-testing-standards.md +175 -0
- package/package.json +1 -1
- package/rules/REFERENCE.md +10 -6
- package/skills/docs-audit/README.md +10 -8
- package/skills/docs-audit/SKILL.md +45 -41
- package/skills/docs-audit/references/scoring-framework.md +5 -5
- package/skills/docs-core/README.md +19 -14
- package/skills/docs-core/SKILL.md +189 -117
- package/skills/planning/references/codebase-understanding.md +5 -5
- package/documents/business/business-features.md +0 -894
- package/documents/business/business-glossary.md +0 -554
- package/documents/business/business-prd.md +0 -400
- package/documents/business/business-workflows.md +0 -713
- package/documents/knowledge-architecture.md +0 -621
- package/documents/knowledge-domain.md +0 -602
- package/documents/knowledge-overview.md +0 -316
- package/documents/knowledge-source-base.md +0 -581
- 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 |
|