azcodr 1.2.2 → 1.3.0

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/AGENTS.md CHANGED
@@ -100,7 +100,6 @@ To prevent context bloat and keep prompt overhead minimal, detailed engineering
100
100
  | **Relentless Questioning** | [docs/rules/relentless_questioning.md](./docs/rules/relentless_questioning.md) | Dynamic context-aware interrogation loops, adaptive decision trees. |
101
101
  | **Workspace Isolation** | [docs/rules/workspace_isolation.md](./docs/rules/workspace_isolation.md) | Strict workspace sovereignty, zero global contamination, local ground truth. |
102
102
  | **Continuous Learning** | [docs/rules/continuous_learning.md](./docs/rules/continuous_learning.md) | Direct rule ingestion, root-cause analysis, dynamic invariant updates. |
103
- | **Upstream Sync** | [docs/rules/upstream_synchronization.md](./docs/rules/upstream_synchronization.md) | Logging generic architecture improvements to changes.md; zero baseline pollution. |
104
103
  ---
105
104
 
106
105
  ## 4. Agent Configuration & Workspace Architecture
package/README.md CHANGED
@@ -38,11 +38,10 @@
38
38
  ├── docs/
39
39
  │ ├── knowledge/ # Institutional knowledge & domain contracts
40
40
  │ │ └── ubiquitous_language.md # Living Ubiquitous Language glossary template
41
- │ └── rules/ # 45 atomic single-responsibility domain rules
41
+ │ └── rules/ # 44 atomic single-responsibility domain rules
42
42
  ├── AGENTS.md # Lean root agentic configuration (< 120 lines)
43
43
  ├── CLAUDE.md -> AGENTS.md # Filesystem symlink for harness parity
44
44
  ├── agents.md -> AGENTS.md # Filesystem symlink for harness parity
45
- ├── changes.md # Upstream changes ledger
46
45
  ├── memory.md # Master memory hub & Lightweight ADR ledger
47
46
  └── README.md # Project documentation
48
47
  ```
@@ -51,7 +50,7 @@
51
50
 
52
51
  ## 📋 Progressive Disclosure Rules Catalog (`docs/rules/`)
53
52
 
54
- The architecture enforces 45 atomic, single-responsibility domain rules. Read on demand to prevent prompt context bloat:
53
+ The architecture enforces 44 atomic, single-responsibility domain rules. Read on demand to prevent prompt context bloat:
55
54
 
56
55
  | Domain | Rule Reference File | Key Focus & Invariants |
57
56
  |---|---|---|
@@ -99,7 +98,6 @@ The architecture enforces 45 atomic, single-responsibility domain rules. Read on
99
98
  | **Relentless Questioning** | [`relentless_questioning.md`](./docs/rules/relentless_questioning.md) | Dynamic context-aware interrogation loops, adaptive decision trees. |
100
99
  | **Workspace Isolation** | [`workspace_isolation.md`](./docs/rules/workspace_isolation.md) | Strict workspace sovereignty, zero global contamination, local ground truth. |
101
100
  | **Continuous Learning** | [`continuous_learning.md`](./docs/rules/continuous_learning.md) | Direct 4-step rule ingestion, root-cause analysis, dynamic invariant updates. |
102
- | **Upstream Sync** | [`upstream_synchronization.md`](./docs/rules/upstream_synchronization.md) | Logging generic architecture improvements to changes.md; zero baseline pollution. |
103
101
 
104
102
  ---
105
103
 
@@ -167,4 +165,3 @@ Once confirmed, the agent automatically executes:
167
165
 
168
166
  - 📖 **[Living Ubiquitous Language Glossary](./docs/knowledge/ubiquitous_language.md)**: Authoritative domain vocabulary contract.
169
167
  - 📜 **[Lightweight ADR Ledger](./memory.md)**: Formal Architectural Decision Records and governing rules.
170
- - 📝 **[Upstream Changes Ledger](./changes.md)**: Record candidate improvements and generic patterns for the upstream azcodr template.
package/bin/azcodr.js CHANGED
@@ -4,7 +4,7 @@
4
4
  const path = require('node:path');
5
5
  const readline = require('node:readline');
6
6
  const fs = require('node:fs');
7
- const { scaffold, logChange, getTemplateDir } = require('../lib/scaffold.js');
7
+ const { scaffold, getTemplateDir } = require('../lib/scaffold.js');
8
8
  const pkg = require('../package.json');
9
9
 
10
10
  function printHelp(out = console.log) {
@@ -14,13 +14,11 @@ Enterprise Multi-Tenant Architecture & Agentic Engineering Starter Template
14
14
 
15
15
  Usage:
16
16
  npx azcodr [directory] [options]
17
- npx azcodr change <title> [options]
18
17
 
19
18
  Commands:
20
19
  [directory] Scaffold azcodr template into directory (default: current directory)
21
- change <title> Log a generic architectural change to changes.md
22
20
 
23
- Scaffold Options:
21
+ Options:
24
22
  -d, --dry-run Simulate scaffolding without modifying filesystem
25
23
  -s, --silent Suppress console output messages
26
24
  -f, --force Overwrite existing files in target directory without confirmation
@@ -28,17 +26,10 @@ Scaffold Options:
28
26
  -v, --version Display version number
29
27
  -h, --help Display this help message
30
28
 
31
- Change Options:
32
- -c, --category Category (Architecture | Rule | Skill | Infrastructure | CLI | Knowledge Hub)
33
- -f, --files Target file(s) affected (e.g. "docs/rules/caching.md")
34
- -r, --rationale Rationale for upstream template incorporation
35
- -d, --desc Detailed description of the change
36
-
37
29
  Examples:
38
30
  npx azcodr my-project
39
31
  npx azcodr . --dry-run
40
32
  npx azcodr . --force
41
- npx azcodr change "Add Wasm plugin interface" -c Architecture
42
33
  `);
43
34
  }
44
35
 
@@ -67,70 +58,6 @@ function askQuestion(query, { input = process.stdin, output = process.stdout } =
67
58
  });
68
59
  }
69
60
 
70
- async function handleLogChange(rawArgs = process.argv.slice(2), io = {}) {
71
- const {
72
- out = console.log,
73
- err = console.error,
74
- exit = process.exit,
75
- stdin = process.stdin,
76
- stdout = process.stdout,
77
- cwd = process.cwd(),
78
- logChange: logChangeFn = logChange
79
- } = io;
80
-
81
- let title = null;
82
- let category = 'Architecture';
83
- let targetFiles = 'docs/rules/';
84
- let rationale = 'Generic architectural enhancement';
85
- let description = '';
86
-
87
- for (let i = 1; i < rawArgs.length; i++) {
88
- const a = rawArgs[i];
89
- if (a === '-c' || a === '--category') {
90
- category = rawArgs[++i] || category;
91
- } else if (a === '-f' || a === '--files') {
92
- targetFiles = rawArgs[++i] || targetFiles;
93
- } else if (a === '-r' || a === '--rationale') {
94
- rationale = rawArgs[++i] || rationale;
95
- } else if (a === '-d' || a === '--desc' || a === '--description') {
96
- description = rawArgs[++i] || description;
97
- } else if (a.startsWith('-')) {
98
- err(`❌ Error: Unknown argument '${a}'. Run 'npx azcodr --help' for available options.`);
99
- return exit(1);
100
- } else if (!title) {
101
- title = a;
102
- }
103
- }
104
-
105
- if (!title) {
106
- if (stdin.isTTY) {
107
- title = await askQuestion('? Change title: ', { input: stdin, output: stdout });
108
- }
109
- }
110
-
111
- if (!title) {
112
- err('❌ Error: A title is required to log an upstream change.');
113
- err('Usage: npx azcodr change "<title>" [-c Category] [-f Files] [-r Rationale] [-d Description]');
114
- return exit(1);
115
- }
116
-
117
- try {
118
- const res = logChangeFn({
119
- title,
120
- category,
121
- targetFiles,
122
- rationale,
123
- description,
124
- targetDir: cwd
125
- });
126
- out(`\n✅ Upstream change logged to ${res.filePath}\n`);
127
- return exit(0);
128
- } catch (error) {
129
- err(`\n❌ Failed to log change: ${error.message}\n`);
130
- return exit(1);
131
- }
132
- }
133
-
134
61
  async function runCli(rawArgs = process.argv.slice(2), io = {}) {
135
62
  const {
136
63
  out = console.log,
@@ -143,10 +70,6 @@ async function runCli(rawArgs = process.argv.slice(2), io = {}) {
143
70
  scaffold: scaffoldFn = scaffold
144
71
  } = io;
145
72
 
146
- if (rawArgs[0] === 'change' || rawArgs[0] === 'log-change') {
147
- return handleLogChange(rawArgs, io);
148
- }
149
-
150
73
  let targetDir = null;
151
74
  let force = false;
152
75
  let noGit = false;
@@ -257,7 +180,6 @@ async function runCli(rawArgs = process.argv.slice(2), io = {}) {
257
180
  out(' ✅ Progressive disclosure rules copied (docs/rules/)');
258
181
  out(' ✅ Workspace knowledge hub and ADR ledger copied (docs/knowledge/, memory.md)');
259
182
  out(' ✅ Specialized agentic skills copied (.agents/skills/)');
260
- out(' ✅ Upstream changes ledger initialized (changes.md)');
261
183
  out(' ✅ Editor formatting standards initialized (.editorconfig)');
262
184
  out(' ✅ Agent directives and harness symlinks established (AGENTS.md, CLAUDE.md, agents.md)');
263
185
  if (result.gitInitialized) {
@@ -294,7 +216,6 @@ if (require.main === module) {
294
216
 
295
217
  module.exports = {
296
218
  runCli,
297
- handleLogChange,
298
219
  askQuestion,
299
220
  printHelp,
300
221
  printVersion,
@@ -8,12 +8,7 @@
8
8
 
9
9
  | Canonical Term | Business Definition | Bounded Context | Forbidden Synonyms | Code & Database Identifiers |
10
10
  |---|---|---|---|---|
11
- | **Organization** | The top-level administrative and multi-tenant isolation container. | Multi-Tenancy & Identity | Account, Company, Workspace, TenantGroup | `Organization`, `organizationId`, `organizations` table |
12
- | **User** | A human actor authenticated with verified credentials across the platform. | Identity & Access | Member (when unauthenticated), Account, Login | `User`, `userId`, `users` table |
13
- | **Membership** | The formal association connecting a User to an Organization with assigned roles. | Authorization & RBAC | UserOrg, Seat, PermissionAssignment | `Membership`, `membershipId`, `memberships` table |
14
- | **Role** | A named set of granular `<entity>:<action>` permissions within an organization. | Authorization | Group, Profile, Level | `Role`, `roleId`, `roles` table |
15
- | **Resource** | The primary business entity managed within the domain core. | Core Domain | Item, Object, Record, Entity | `Resource`, `resourceId`, `resources` table |
16
- | **Ledger Entry** | An immutable audit record detailing a financial or transactional state change. | Finance & Accounting | TransactionRow, MoneyLog, BillEntry | `LedgerEntry`, `ledgerEntryId`, `ledger_entries` table |
11
+ | *(No domain terms defined yet)* | *Define business meaning during Phase 1 Domain Discovery.* | *e.g. Core Domain* | *Synonyms strictly forbidden across code & UI.* | *Exact type, class, or table name.* |
17
12
 
18
13
  ---
19
14
 
package/lib/index.d.ts CHANGED
@@ -31,30 +31,6 @@ export interface ScaffoldResult {
31
31
  actions: string[];
32
32
  }
33
33
 
34
- export interface LogChangeOptions {
35
- /** Short title describing the architectural change */
36
- title: string;
37
- /** Category of change (Architecture | Rule | Skill | Infrastructure | CLI | Knowledge Hub) */
38
- category?: string;
39
- /** Target file(s) affected by the change */
40
- targetFiles?: string;
41
- /** Architectural rationale for upstream template incorporation */
42
- rationale?: string;
43
- /** Detailed description of the change */
44
- description?: string;
45
- /** Working directory containing changes.md (default: process.cwd()) */
46
- targetDir?: string;
47
- }
48
-
49
- export interface LogChangeResult {
50
- /** Whether the log entry was successfully recorded */
51
- success: boolean;
52
- /** Absolute path to changes.md */
53
- filePath: string;
54
- /** Markdown entry text that was appended */
55
- entry: string;
56
- }
57
-
58
34
  export interface ValidateTargetOptions {
59
35
  /** Custom template root directory */
60
36
  templateDir?: string;
@@ -79,11 +55,6 @@ export interface CopyTemplateOptions {
79
55
  */
80
56
  export function scaffold(options?: ScaffoldOptions): ScaffoldResult;
81
57
 
82
- /**
83
- * Appends a standardized upstream change entry to changes.md.
84
- */
85
- export function logChange(options: LogChangeOptions): LogChangeResult;
86
-
87
58
  /**
88
59
  * Validates the target directory to ensure it is suitable for scaffolding.
89
60
  */
@@ -139,7 +110,6 @@ export const TEMPLATE_ITEMS: readonly string[];
139
110
 
140
111
  declare const defaultExport: {
141
112
  scaffold: typeof scaffold;
142
- logChange: typeof logChange;
143
113
  validateTarget: typeof validateTarget;
144
114
  copyTemplate: typeof copyTemplate;
145
115
  ensureSymlink: typeof ensureSymlink;
package/lib/scaffold.js CHANGED
@@ -7,7 +7,6 @@ const cp = require('node:child_process');
7
7
  const TEMPLATE_ITEMS = [
8
8
  'AGENTS.md',
9
9
  'memory.md',
10
- 'changes.md',
11
10
  'README.md',
12
11
  'docs',
13
12
  '.agents',
@@ -227,53 +226,8 @@ function scaffold(options = {}) {
227
226
  };
228
227
  }
229
228
 
230
- /**
231
- * Appends a standardized upstream change entry to changes.md.
232
- */
233
- function logChange(options = {}) {
234
- const {
235
- title,
236
- category = 'Architecture',
237
- targetFiles = 'docs/rules/',
238
- rationale = 'Generic architectural enhancement',
239
- description = '',
240
- targetDir = process.cwd()
241
- } = options;
242
-
243
- if (!title || typeof title !== 'string' || !title.trim()) {
244
- throw new Error('A change title is required to log an upstream change.');
245
- }
246
-
247
- const cleanTitle = title.trim();
248
- const changesFilePath = path.join(path.resolve(targetDir), 'changes.md');
249
- const today = new Date().toISOString().slice(0, 10);
250
-
251
- const entry = `\n### [${today}] ${cleanTitle}\n` +
252
- `- **Category:** ${category}\n` +
253
- `- **Target File(s):** ${targetFiles}\n` +
254
- `- **Rationale:** ${rationale}\n` +
255
- `- **Description:** ${description || cleanTitle}\n` +
256
- `- **Domain Filter Verification:** Verified 100% generic; purged of all project-specific business entities and models.\n`;
257
-
258
- if (fs.existsSync(changesFilePath)) {
259
- fs.appendFileSync(changesFilePath, entry, 'utf-8');
260
- } else {
261
- const initialHeader = `# Upstream Changes Ledger (\`changes.md\`)\n\n` +
262
- `> **Core Purpose:** Record candidate improvements, generic architectural updates, defect post-mortems, and rule enhancements discovered in this workspace that should be incorporated into the upstream \`azcodr\` baseline template.\n\n` +
263
- `---\n\n## Upstream Changes Log\n`;
264
- fs.writeFileSync(changesFilePath, initialHeader + entry, 'utf-8');
265
- }
266
-
267
- return {
268
- success: true,
269
- filePath: changesFilePath,
270
- entry
271
- };
272
- }
273
-
274
229
  module.exports = {
275
230
  scaffold,
276
- logChange,
277
231
  validateTarget,
278
232
  copyTemplate,
279
233
  ensureSymlink,
package/memory.md CHANGED
@@ -8,7 +8,6 @@
8
8
 
9
9
  - 📖 **[Living Ubiquitous Language Glossary](./docs/knowledge/ubiquitous_language.md)**: Authoritative, single-name domain vocabulary contract.
10
10
  - 📜 **[Lightweight ADR Master Index](#adr-master-index)**: Summary of all architectural decisions and direct links to governing rules.
11
- - 📝 **[Upstream Changes Ledger](./changes.md)**: Ledger of candidate improvements and generic patterns for upstream azcodr.
12
11
 
13
12
  ---
14
13
 
@@ -34,6 +33,7 @@
34
33
  | **ADR-015** | Problem-First Architecture, Topology Scaffolding, Tipping Points & Nano-TDD | 2026-09-25 | ACCEPTED | [`clean_code.md`](./docs/rules/clean_code.md), [`domain_driven_design.md`](./docs/rules/domain_driven_design.md), [`test_driven_development.md`](./docs/rules/test_driven_development.md), [`lets-build`](./.agents/skills/lets-build/SKILL.md) |
35
34
  | **ADR-016** | Elimination of Static Markdown Knowledge Graph | 2026-09-25 | ACCEPTED | [`clean_code.md`](./docs/rules/clean_code.md), [`continuous_learning.md`](./docs/rules/continuous_learning.md) |
36
35
  | **ADR-017** | Progressive Rules Consolidation (DDD & GoF Patterns) | 2026-09-25 | ACCEPTED | [`domain_driven_design.md`](./docs/rules/domain_driven_design.md), [`design_patterns.md`](./docs/rules/design_patterns.md) |
36
+ | **ADR-018** | Elimination of Upstream Changes Ledger and Sync Tooling | 2026-09-25 | ACCEPTED | [`clean_code.md`](./docs/rules/clean_code.md), [`workspace_isolation.md`](./docs/rules/workspace_isolation.md) |
37
37
 
38
38
 
39
39
  ---
@@ -143,3 +143,13 @@
143
143
  3. Streamline rule catalog across `AGENTS.md` and `README.md` to 45 lean, single-responsibility, non-overlapping rules.
144
144
  - **Enforced In:** [`AGENTS.md`](./AGENTS.md), [`README.md`](./README.md), [`domain_driven_design.md`](./docs/rules/domain_driven_design.md), [`design_patterns.md`](./docs/rules/design_patterns.md).
145
145
 
146
+ #### ADR-018: Elimination of Upstream Changes Ledger and Upstream Sync Tooling
147
+ - **Date:** 2026-09-25 | **Status:** ACCEPTED
148
+ - **Context:** Maintaining a manual `changes.md` ledger duplicated state already captured across Git commit history and formal ADR records in `memory.md`. Furthermore, scaffolding `changes.md` into downstream derived projects contaminated them with meta-tooling baggage about the upstream template, violating Problem-First Architecture and Workspace Sovereignty. Accompanying CLI subcommands (`npx azcodr change`) and rule files (`upstream_synchronization.md`) added over 200 lines of accidental maintenance complexity.
149
+ - **Decision:**
150
+ 1. Permanently delete `changes.md` and retire `docs/rules/upstream_synchronization.md`.
151
+ 2. Remove `changes.md` from scaffolded `TEMPLATE_ITEMS` and package manifests.
152
+ 3. Purge `logChange` functions, types, and CLI subcommands, restoring `azcodr` CLI as a clean, single-purpose project bootstrapper.
153
+ 4. Standardize exclusively on Git commits for historical revision logs and `memory.md` for architectural decision records.
154
+ - **Enforced In:** [`AGENTS.md`](./AGENTS.md), [`README.md`](./README.md), [`lib/scaffold.js`](./lib/scaffold.js), [`bin/azcodr.js`](./bin/azcodr.js), [`memory.md`](./memory.md).
155
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "azcodr",
3
- "version": "1.2.2",
3
+ "version": "1.3.0",
4
4
  "description": "Enterprise Architecture & Agentic Engineering Starter Template",
5
5
  "bin": {
6
6
  "azcodr": "bin/azcodr.js"
@@ -19,7 +19,6 @@
19
19
  "lib",
20
20
  "AGENTS.md",
21
21
  "memory.md",
22
- "changes.md",
23
22
  "README.md",
24
23
  "docs",
25
24
  ".agents",
package/changes.md DELETED
@@ -1,79 +0,0 @@
1
- # Upstream Changes Ledger (`changes.md`)
2
-
3
- > **Core Purpose:** Record candidate improvements, generic architectural updates, defect post-mortems, and rule enhancements discovered in this workspace that should be incorporated into the upstream `azcodr` baseline template. No automated git merging or external repo mutation is performed.
4
-
5
- ---
6
-
7
- ## 1. Specification & Protocol
8
-
9
- When an AI agent or engineer discovers a generic architectural improvement, bug fix, or rule refinement during project development, append an entry below using this atomic format:
10
-
11
- ```markdown
12
- ### [YYYY-MM-DD] <Title of Change>
13
- - **Category:** Rule | Skill | Infrastructure | CLI | Knowledge Hub
14
- - **Target File(s):** `docs/rules/...`, `.agents/skills/...`, etc.
15
- - **Rationale:** Why this improvement is necessary or valuable across all enterprise projects.
16
- - **Description:** Concise summary of the mutation or invariant added.
17
- - **Domain Filter Verification:** Verified 100% generic; purged of all project-specific business entities and models.
18
- ```
19
-
20
- ---
21
-
22
- ## 2. Upstream Changes Log
23
-
24
- ### [2026-09-25] Initialized npx Scaffolder CLI and npm Package
25
- - **Category:** CLI & Infrastructure
26
- - **Target File(s):** `bin/azcodr.js`, `lib/scaffold.js`, `package.json`, `tests/`
27
- - **Rationale:** Eliminate manual `cp -r` copying; enable anyone to pull and scaffold the azcodr architecture template via `npx azcodr`.
28
- - **Description:** Implemented zero-dependency Node.js CLI executable with Outside-In TDD, harness parity symlink generation, script execution bit setting, and full test suite passing with 100% agentic config validation.
29
- - **Domain Filter Verification:** Verified 100% generic; no project-specific business models.
30
-
31
- ### [2026-09-25] Streamlined Upstream Sync Protocol to changes.md Ledger
32
- - **Category:** Rule & Process
33
- - **Target File(s):** `docs/rules/upstream_synchronization.md`, `changes.md`, `AGENTS.md`
34
- - **Rationale:** Remove fragile git repo resolution and merge scripts; replace with atomic change logging in `changes.md`.
35
- - **Description:** Retired `merge-ai` skill and removed machine-specific hardcoded paths. All upstream improvements are now recorded atomically in `changes.md`.
36
- - **Domain Filter Verification:** Verified 100% generic.
37
-
38
- ### [2026-09-25] Harden CLI, achieve 100% test coverage gates, add multi-OS CI workflow, and TypeScript declarations
39
- - **Category:** CLI
40
- - **Target File(s):** bin/azcodr.js, lib/scaffold.js, lib/index.d.ts, .github/workflows/ci.yml
41
- - **Rationale:** Fulfill 100.00% test coverage mandate, cross-platform CI matrix, and library type safety
42
- - **Description:** Remediate gap assessment findings: add --dry-run and --silent flags, enforce 100.00% line/branch/function coverage gates, add GitHub Actions CI matrix across Node 18/20/22/24 and Linux/macOS/Windows, add .editorconfig template item, and export ambient TypeScript typings.
43
- - **Domain Filter Verification:** Verified 100% generic; purged of all project-specific business entities and models.
44
-
45
- ### [2026-09-25] Resolve macOS/Windows Git Case-Collision and Cross-Version CI Matrix Coverage
46
- - **Category:** Infrastructure & CI
47
- - **Target File(s):** .gitignore, lib/scaffold.js, scripts/test_coverage.js, validate_agentic_configs.sh
48
- - **Rationale:** Ensure flawless cross-platform and multi-version Node execution across macOS, Windows, and Linux on Node 18, 20, 22, 24.
49
- - **Description:** Untracked agents.md from Git to prevent cyclic symlink overwrite on case-insensitive filesystems; hardened ensureSymlink with isSameCaseInsensitiveFile check; added cross-version test coverage runner script; updated npm test runner to use native discovery.
50
- - **Domain Filter Verification:** Verified 100% generic; purged of all project-specific business entities and models.
51
-
52
- ### [2026-09-25] Problem-First Architecture, Evolutionary Tipping Points, and Incremental Nano-Cycle TDD
53
- - **Category:** Architecture, Rule & Skill
54
- - **Target File(s):** `AGENTS.md`, `docs/rules/clean_code.md`, `docs/rules/domain_driven_design.md`, `docs/rules/test_driven_development.md`, `.agents/skills/lets-build/SKILL.md`, `.agents/skills/lets-build/references/architecture_interview_matrix.md`, `.agents/skills/lets-build/scripts/bootstrap_workspace.sh`, `memory.md`
55
- - **Rationale:** Eliminate tool-first bias ("Solution-in-Search-of-a-Problem"), stop accidental complexity (as seen in `force-dark-light` where Chrome extension received Kubernetes and OpenAPI specs), prevent AI-accelerated architectural drift, and halt the "Test-First Waterfall" batch-test anti-pattern.
56
- - **Description:**
57
- 1. Enforced Problem Space vs Solution Space decoupling with zero tool bias.
58
- 2. Made scaffolding strictly topology-aware (Web SaaS, Browser Extension, Game/Engine, CLI, Library) with zero speculative bloat.
59
- 3. Codified Evolutionary Architecture, the 5 Architectural Tipping Points, and Kent Beck's "Refactor-Before-Add" protocol.
60
- 4. Codified Uncle Bob's Three Laws of TDD, banned batch-test dumps, and introduced the Incremental Nano-Cycle and Ping-Pong Pair Programming protocol.
61
- - **Domain Filter Verification:** Verified 100% generic; applicable across any language, stack, and project topology.
62
-
63
- ### [2026-09-25] Permanent Removal of Static Markdown Knowledge Graph
64
- - **Category:** Architecture & Knowledge Hub
65
- - **Target File(s):** `docs/knowledge/knowledge_graph.md`, `AGENTS.md`, `memory.md`, `README.md`, `docs/rules/continuous_learning.md`
66
- - **Rationale:** Static markdown Mermaid diagrams and entity models in template repositories suffer from maintenance drift, duplicate state from code/migrations, violate Problem-First by assuming a multi-tenant web backend, and waste prompt token budget.
67
- - **Description:** Permanently eliminated `docs/knowledge/knowledge_graph.md`. Enforced code, type definitions, and versioned database migrations as the single source of truth for architectural topologies. Retained `docs/knowledge/ubiquitous_language.md` for lightweight living domain vocabulary contracts.
68
- - **Domain Filter Verification:** Verified 100% generic; purged of all speculative and duplicate static models.
69
-
70
- ### [2026-09-25] Workspace Rules Consolidation & Redundancy Purge
71
- - **Category:** Rule & Knowledge Hub
72
- - **Target File(s):** `docs/rules/domain_driven_design.md`, `docs/rules/design_patterns.md`, `docs/rules/domain_expertise.md`, `docs/rules/gof_design_patterns_reference.md`, `AGENTS.md`, `README.md`, `memory.md`
73
- - **Rationale:** Eliminate duplicate and fragmented rules to optimize agent attention window, consolidate domain invariants, and uphold strict Single Responsibility across progressive disclosure documentation.
74
- - **Description:**
75
- 1. Merged business capability mapping and Aggregate Root gatekeeper invariants from `domain_expertise.md` directly into `domain_driven_design.md`. Removed redundant `domain_expertise.md`.
76
- 2. Integrated the complete 23 Gang of Four patterns catalog from `gof_design_patterns_reference.md` directly into `design_patterns.md`. Removed redundant `gof_design_patterns_reference.md`.
77
- 3. Reduced active progressive disclosure rules from 47 to 45 while preserving 100% domain coverage.
78
- - **Domain Filter Verification:** Verified 100% generic; purged of all redundant files and circular links.
79
-
@@ -1,53 +0,0 @@
1
- # Upstream Baseline Synchronization & changes.md Ledger
2
-
3
- > **Core Mandate:** Upstream template/baseline workspaces (`azcodr`) must remain strictly untouched during project development. When generic architectural improvements, rule refinements, or post-mortems are identified, record them solely into the `changes.md` ledger with zero automated repo merging or baseline contamination.
4
-
5
- ---
6
-
7
- ## 1. The Baseline-Project Decoupling Principle
8
-
9
- Workspaces operate under a clean, decoupled flow:
10
-
11
- ```
12
- [Upstream Generic Baseline: azcodr]
13
- │
14
- ▼ (Scaffolded via npx azcodr)
15
- [Derived Project Workspace: my-app / others]
16
- │
17
- │ (Accumulates project code, specificities, and institutional lessons)
18
- │
19
- ▼ (Record reusable improvements)
20
- [Upstream Changes Ledger: changes.md]
21
- ```
22
-
23
- - **Pristine Upstream Mandate:** Never edit, commit, or attempt automated git merges to an upstream baseline repository during routine project development, feature implementation, or bug fixes.
24
- - **Ledger-Only Synchronization:** When generic architectural discoveries or defect post-mortems occur, document them cleanly in `changes.md` at the workspace root. No automated merge AI or remote repo synchronization is executed.
25
-
26
- ---
27
-
28
- ## 2. Zero-Contamination Invariant (Generic vs. Specific)
29
-
30
- When logging proposed changes into `changes.md`, enforce strict domain filtering:
31
-
32
- | Element Category | Keep in Specific Project Workspace | Allow in changes.md for Upstream (`azcodr`) |
33
- |---|---|---|
34
- | **Domain Entities** | Concrete business models (`Order`, `Customer`, `Invoice`, etc.) | Abstract archetypes (`Entity`, `Aggregate`, `ValueObject`, `Resource`) |
35
- | **Tech Stack / Adapters** | Concrete choices (Prisma, SQLite dev, PostgreSQL prod, Vite React) | Hexagonal Ports, abstract repository contracts, polyglot adapter guidance |
36
- | **Architectural Rules** | Specific entity validation, specific route paths | Universal invariants (5-Phase Agile Lifecycle, SemVer trigger matrix, FK dropdowns) |
37
- | **ADRs** | Stack decisions (`ADR-006: Target Tech Stack for Project`) | Generic architecture patterns (`ADR-007` to `ADR-010`) |
38
- | **Test Suites** | Concrete domain tests (`order_domain.test.ts`, domain-specific suites) | Boundary smoke test pattern (`scripts/smoke_test.sh`), 100% coverage gate |
39
-
40
- ---
41
-
42
- ## 3. Atomic changes.md Entry Protocol
43
-
44
- Every upstream-bound proposal logged to `changes.md` must follow the standardized format:
45
-
46
- ```markdown
47
- ### [YYYY-MM-DD] <Title of Change>
48
- - **Category:** Rule | Skill | Infrastructure | CLI | Knowledge Hub
49
- - **Target File(s):** `docs/rules/...`, `.agents/skills/...`, etc.
50
- - **Rationale:** Why this improvement is necessary or valuable across all enterprise projects.
51
- - **Description:** Concise summary of the mutation or invariant added.
52
- - **Domain Filter Verification:** Verified 100% generic; purged of all project-specific business entities and models.
53
- ```