agentme 0.3.3 → 0.6.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/.xdrs/agentme/edrs/application/003-javascript-project-tooling.md +32 -11
- package/.xdrs/agentme/edrs/application/010-golang-project-tooling.md +32 -18
- package/.xdrs/agentme/edrs/application/014-python-project-tooling.md +152 -0
- package/.xdrs/agentme/edrs/application/015-cli-tool-standards.md +107 -0
- package/.xdrs/agentme/edrs/application/skills/001-create-javascript-project/SKILL.md +61 -19
- package/.xdrs/agentme/edrs/application/skills/003-create-golang-project/SKILL.md +19 -9
- package/.xdrs/agentme/edrs/application/skills/005-create-python-project/SKILL.md +363 -0
- package/.xdrs/agentme/edrs/devops/005-monorepo-structure.md +37 -5
- package/.xdrs/agentme/edrs/devops/006-github-pipelines.md +6 -1
- package/.xdrs/agentme/edrs/devops/008-common-targets.md +5 -0
- package/.xdrs/agentme/edrs/devops/skills/002-monorepo-setup/SKILL.md +58 -12
- package/.xdrs/agentme/edrs/governance/013-contributing-guide-requirements.md +5 -0
- package/.xdrs/agentme/edrs/index.md +3 -0
- package/.xdrs/agentme/edrs/observability/011-service-health-check-endpoint.md +5 -0
- package/.xdrs/agentme/edrs/principles/002-coding-best-practices.md +5 -0
- package/.xdrs/agentme/edrs/principles/004-unit-test-requirements.md +5 -0
- package/.xdrs/agentme/edrs/principles/007-project-quality-standards.md +7 -2
- package/.xdrs/agentme/edrs/principles/009-error-handling.md +5 -0
- package/.xdrs/agentme/edrs/principles/012-continuous-xdr-enrichment.md +6 -1
- package/.xdrs/agentme/edrs/principles/016-cross-language-module-structure.md +133 -0
- package/.xdrs/agentme/edrs/principles/articles/001-continuous-xdr-improvement.md +3 -3
- package/package.json +23 -3
|
@@ -13,12 +13,12 @@ metadata:
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
Creates or extends a monorepo that follows the standard layout from [agentme-edr-005](
|
|
17
|
-
top-level application folders,
|
|
18
|
-
level so any contributor can build, lint, and
|
|
19
|
-
predictable command.
|
|
16
|
+
Creates or extends a monorepo that follows the standard layout from [agentme-edr-005](../../005-monorepo-structure.md):
|
|
17
|
+
top-level application folders, independent module roots, sibling example and multi-module test
|
|
18
|
+
areas, Mise-managed tooling, and Makefiles at every level so any contributor can build, lint, and
|
|
19
|
+
test any part of the monorepo with a single, predictable command.
|
|
20
20
|
|
|
21
|
-
Related EDRs: [agentme-edr-005](
|
|
21
|
+
Related EDRs: [agentme-edr-005](../../005-monorepo-structure.md), [agentme-edr-013](../../../governance/013-contributing-guide-requirements.md), [agentme-edr-016](../../../principles/016-cross-language-module-structure.md)
|
|
22
22
|
|
|
23
23
|
## Instructions
|
|
24
24
|
|
|
@@ -51,10 +51,12 @@ golangci-lint = "1.57"
|
|
|
51
51
|
Coordinates `build`, `lint`, and `test` across all applications. Also exposes a `setup` target.
|
|
52
52
|
|
|
53
53
|
```makefile
|
|
54
|
-
.PHONY: build lint test setup
|
|
54
|
+
.PHONY: all build lint test clean setup
|
|
55
55
|
|
|
56
56
|
APPS := <app1> <app2> # replace with actual application names
|
|
57
57
|
|
|
58
|
+
all: build lint test
|
|
59
|
+
|
|
58
60
|
build:
|
|
59
61
|
$(foreach app,$(APPS),$(MAKE) -C $(app) build &&) true
|
|
60
62
|
|
|
@@ -64,12 +66,25 @@ lint:
|
|
|
64
66
|
test:
|
|
65
67
|
$(foreach app,$(APPS),$(MAKE) -C $(app) test &&) true
|
|
66
68
|
|
|
69
|
+
clean:
|
|
70
|
+
$(foreach app,$(APPS),$(MAKE) -C $(app) clean &&) true
|
|
71
|
+
rm -rf .cache
|
|
72
|
+
|
|
67
73
|
setup:
|
|
68
74
|
@echo "Install Mise: https://mise.jdx.dev/getting-started.html"
|
|
69
75
|
@echo "Then run: mise install"
|
|
70
76
|
@echo "See README.md for full setup instructions."
|
|
71
77
|
```
|
|
72
78
|
|
|
79
|
+
#### Root `.gitignore`
|
|
80
|
+
|
|
81
|
+
Must ignore shared artifact and cache folders:
|
|
82
|
+
|
|
83
|
+
```gitignore
|
|
84
|
+
dist/
|
|
85
|
+
.cache/
|
|
86
|
+
```
|
|
87
|
+
|
|
73
88
|
#### Root `README.md`
|
|
74
89
|
|
|
75
90
|
Must include four sections:
|
|
@@ -162,10 +177,12 @@ For each application:
|
|
|
162
177
|
3. **Create `<app>/Makefile`** that delegates to each module:
|
|
163
178
|
|
|
164
179
|
```makefile
|
|
165
|
-
.PHONY: build lint test
|
|
180
|
+
.PHONY: all build lint test clean
|
|
166
181
|
|
|
167
182
|
MODULES := <module1> <module2> # replace with actual module names
|
|
168
183
|
|
|
184
|
+
all: build lint test
|
|
185
|
+
|
|
169
186
|
build:
|
|
170
187
|
$(foreach mod,$(MODULES),$(MAKE) -C $(mod) build &&) true
|
|
171
188
|
|
|
@@ -174,10 +191,16 @@ For each application:
|
|
|
174
191
|
|
|
175
192
|
test:
|
|
176
193
|
$(foreach mod,$(MODULES),$(MAKE) -C $(mod) test &&) true
|
|
194
|
+
|
|
195
|
+
clean:
|
|
196
|
+
$(foreach mod,$(MODULES),$(MAKE) -C $(mod) clean &&) true
|
|
197
|
+
rm -rf .cache
|
|
177
198
|
```
|
|
178
199
|
|
|
179
200
|
4. **Create `<app>/shared/`** — leave empty if no cross-module shared code exists yet.
|
|
180
201
|
|
|
202
|
+
5. **Create sibling aggregation folders when needed**: `<app>/examples/`, `<app>/tests_integration/`, and `<app>/tests_benchmark/` for artifacts that apply to multiple modules.
|
|
203
|
+
|
|
181
204
|
---
|
|
182
205
|
|
|
183
206
|
### Phase 5: Scaffold each module
|
|
@@ -186,11 +209,15 @@ For each module inside an application:
|
|
|
186
209
|
|
|
187
210
|
1. **Create the module folder** using lowercase, hyphen-separated names (e.g., `data-loader`).
|
|
188
211
|
|
|
189
|
-
2. **Create `<app>/<module>/
|
|
212
|
+
2. **Create `<app>/<module>/README.md`** with consumer usage first and short developer commands at the end.
|
|
213
|
+
|
|
214
|
+
3. **Create `<app>/<module>/Makefile`** with the common targets, adapted to the module's language. Redirect persistent caches into `.cache/` and write distributable artifacts to `dist/`.
|
|
190
215
|
|
|
191
216
|
**Go:**
|
|
192
217
|
```makefile
|
|
193
|
-
.PHONY: build lint test
|
|
218
|
+
.PHONY: all build lint test clean
|
|
219
|
+
|
|
220
|
+
all: build lint test
|
|
194
221
|
|
|
195
222
|
build:
|
|
196
223
|
go build ./...
|
|
@@ -200,11 +227,16 @@ For each module inside an application:
|
|
|
200
227
|
|
|
201
228
|
test:
|
|
202
229
|
go test ./... -cover
|
|
230
|
+
|
|
231
|
+
clean:
|
|
232
|
+
rm -rf dist .cache
|
|
203
233
|
```
|
|
204
234
|
|
|
205
235
|
**Node.js / TypeScript:**
|
|
206
236
|
```makefile
|
|
207
|
-
.PHONY: build lint test
|
|
237
|
+
.PHONY: all build lint test clean
|
|
238
|
+
|
|
239
|
+
all: build lint test
|
|
208
240
|
|
|
209
241
|
build:
|
|
210
242
|
npm run build
|
|
@@ -214,11 +246,16 @@ For each module inside an application:
|
|
|
214
246
|
|
|
215
247
|
test:
|
|
216
248
|
npm test
|
|
249
|
+
|
|
250
|
+
clean:
|
|
251
|
+
rm -rf dist .cache
|
|
217
252
|
```
|
|
218
253
|
|
|
219
254
|
**Python:**
|
|
220
255
|
```makefile
|
|
221
|
-
.PHONY: build lint test
|
|
256
|
+
.PHONY: all build lint test clean
|
|
257
|
+
|
|
258
|
+
all: build lint test
|
|
222
259
|
|
|
223
260
|
build:
|
|
224
261
|
pip install -e .
|
|
@@ -228,9 +265,14 @@ For each module inside an application:
|
|
|
228
265
|
|
|
229
266
|
test:
|
|
230
267
|
pytest
|
|
268
|
+
|
|
269
|
+
clean:
|
|
270
|
+
rm -rf dist .cache
|
|
231
271
|
```
|
|
232
272
|
|
|
233
|
-
|
|
273
|
+
4. **Add source files** appropriate to the language, placing them inside the module folder.
|
|
274
|
+
|
|
275
|
+
5. **Place module-specific integration tests and benchmarks predictably**: `<module>/tests_integration/` and `<module>/tests_benchmark/` when they are not co-located by language convention.
|
|
234
276
|
|
|
235
277
|
---
|
|
236
278
|
|
|
@@ -242,8 +284,10 @@ After scaffolding, run the following checks and fix any issues:
|
|
|
242
284
|
- `make lint` at the repository root passes.
|
|
243
285
|
- `make test` at the repository root passes.
|
|
244
286
|
- All folder and file names are lowercase and use hyphens.
|
|
287
|
+
- The root `.gitignore` ignores `dist/` and `.cache/`.
|
|
245
288
|
- A `CONTRIBUTING.md` exists at the repository root and covers bugs, feature discussions, pull requests, Conventional Comments, and small focused changes.
|
|
246
289
|
- Every application folder has a `README.md` covering all four required sections.
|
|
290
|
+
- Every module folder has a `README.md`, `Makefile`, `dist/` location, and `.cache/` strategy.
|
|
247
291
|
- A `.mise.toml` exists at the repository root with all required tool versions pinned.
|
|
248
292
|
|
|
249
293
|
---
|
|
@@ -256,8 +300,10 @@ After scaffolding, run the following checks and fix any issues:
|
|
|
256
300
|
pcb-devices/
|
|
257
301
|
├── README.md
|
|
258
302
|
├── Makefile
|
|
303
|
+
├── examples/
|
|
259
304
|
├── shared/
|
|
260
305
|
└── firmware/
|
|
306
|
+
├── README.md
|
|
261
307
|
└── Makefile
|
|
262
308
|
```
|
|
263
309
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentme-edr-013-contributing-guide-requirements
|
|
3
|
+
description: Defines the minimum contributor workflow guidance required in root CONTRIBUTING.md files. Use when scaffolding or reviewing contribution processes.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# agentme-edr-013: Contributing guide requirements
|
|
2
7
|
|
|
3
8
|
## Context and Problem Statement
|
|
@@ -13,6 +13,7 @@ Foundational standards, principles, and guidelines.
|
|
|
13
13
|
- [agentme-edr-007](principles/007-project-quality-standards.md) - **Project quality standards**
|
|
14
14
|
- [agentme-edr-009](principles/009-error-handling.md) - **Error handling**
|
|
15
15
|
- [agentme-edr-012](principles/012-continuous-xdr-enrichment.md) - **Continuous xdr improvement policy**
|
|
16
|
+
- [agentme-edr-016](principles/016-cross-language-module-structure.md) - **Cross-language module structure**
|
|
16
17
|
|
|
17
18
|
## Articles
|
|
18
19
|
|
|
@@ -26,6 +27,8 @@ Language and framework-specific tooling and project structure.
|
|
|
26
27
|
|
|
27
28
|
- [agentme-edr-003](application/003-javascript-project-tooling.md) - **JavaScript project tooling and structure** *(includes skill: [001-create-javascript-project](application/skills/001-create-javascript-project/SKILL.md))*
|
|
28
29
|
- [agentme-edr-010](application/010-golang-project-tooling.md) - **Go project tooling and structure** *(includes skill: [003-create-golang-project](application/skills/003-create-golang-project/SKILL.md))*
|
|
30
|
+
- [agentme-edr-014](application/014-python-project-tooling.md) - **Python project tooling and structure** *(includes skill: [005-create-python-project](application/skills/005-create-python-project/SKILL.md))*
|
|
31
|
+
- [agentme-edr-015](application/015-cli-tool-standards.md) - **CLI tool standards**
|
|
29
32
|
- [004-select-relevant-xdrs](application/skills/004-select-relevant-xdrs/SKILL.md) - **Select relevant XDRs**
|
|
30
33
|
|
|
31
34
|
## Devops
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentme-edr-011-service-health-check-endpoint
|
|
3
|
+
description: Defines the required health endpoint contract for service availability and dependency readiness checks. Use when implementing or reviewing service health endpoints.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# agentme-edr-011: Service health check endpoint
|
|
2
7
|
|
|
3
8
|
## Context and Problem Statement
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentme-edr-002-coding-best-practices
|
|
3
|
+
description: Defines cross-language coding practices for keeping code readable, modular, and synchronized with tests and documentation. Apply across projects adopting agentme engineering standards.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# agentme-edr-002: Coding best practices
|
|
2
7
|
|
|
3
8
|
## Context and Problem Statement
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentme-edr-004-unit-test-requirements
|
|
3
|
+
description: Defines unit test requirements for assertions, offline execution, coverage, shared setup, and real-code preference. Use when writing or reviewing tests.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# agentme-edr-004: Unit test requirements
|
|
2
7
|
|
|
3
8
|
## Context and Problem Statement
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentme-edr-007-project-quality-standards
|
|
3
|
+
description: Defines minimum project quality standards for README onboarding, testing, linting, XDR compliance, and runnable examples. Use when scaffolding or reviewing projects.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# agentme-edr-007: Project quality standards
|
|
2
7
|
|
|
3
8
|
## Context and Problem Statement
|
|
@@ -60,7 +65,7 @@ A unit test suite must run automatically before every release. Failing tests mus
|
|
|
60
65
|
|
|
61
66
|
### 3. The project MUST comply with all applicable workspace XDRs
|
|
62
67
|
|
|
63
|
-
All XDRs that apply to the project's scope (as listed in [.xdrs/index.md](
|
|
68
|
+
All XDRs that apply to the project's scope (as listed in [.xdrs/index.md](../../../index.md)) must be followed. A deviation requires a project-local XDR documenting the override.
|
|
64
69
|
|
|
65
70
|
**Requirements:**
|
|
66
71
|
- Review applicable XDRs before any significant implementation
|
|
@@ -80,7 +85,7 @@ Projects larger than 10 files or 200 lines of code must have a linter configured
|
|
|
80
85
|
|
|
81
86
|
**Exception:** Projects with fewer than 100 lines of code, or whose `README.md` prominently marks them as a **Spike** or **Experiment**, are exempt from this requirement. Such projects must never be deployed to production.
|
|
82
87
|
|
|
83
|
-
**Reference:** [agentme-edr-003](003-javascript-project-tooling.md) for JavaScript-specific tooling.
|
|
88
|
+
**Reference:** [agentme-edr-003](../application/003-javascript-project-tooling.md) for JavaScript-specific tooling.
|
|
84
89
|
|
|
85
90
|
---
|
|
86
91
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentme-edr-009-error-handling
|
|
3
|
+
description: Defines error handling practices for catching, propagating, surfacing, and testing failures consistently across projects. Use when implementing interfaces and failure paths.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# agentme-edr-009: Error handling
|
|
2
7
|
|
|
3
8
|
## Context and Problem Statement
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentme-edr-012-continuous-xdr-improvement-policy
|
|
3
|
+
description: Defines how teams should promote reusable implementation guidance into shared XDRs instead of keeping it in prompts or local habits. Use when recurring decisions surface during delivery.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# agentme-edr-012: Continuous xdr improvement policy
|
|
2
7
|
|
|
3
8
|
## Context and Problem Statement
|
|
@@ -33,7 +38,7 @@ Developers must treat reusable missing guidance discovered during implementation
|
|
|
33
38
|
|
|
34
39
|
## References
|
|
35
40
|
|
|
36
|
-
- [_core-adr-001](../../../_core/adrs/principles/001-
|
|
41
|
+
- [_core-adr-001](../../../_core/adrs/principles/001-xdrs-core.md)
|
|
37
42
|
- [_core-article-001](../../../_core/adrs/principles/articles/001-xdrs-overview.md)
|
|
38
43
|
- [agentme-article-001](articles/001-continuous-xdr-improvement.md)
|
|
39
44
|
- [002-write-xdr skill](../../../../.github/skills/002-write-xdr/SKILL.md)
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentme-edr-016-cross-language-module-structure
|
|
3
|
+
description: Defines the baseline module-root structure, artifact locations, cache placement, README expectations, examples layout, and test folder conventions across languages. Use when creating or reviewing buildable modules.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# agentme-edr-016: Cross-language module structure
|
|
7
|
+
|
|
8
|
+
## Context and Problem Statement
|
|
9
|
+
|
|
10
|
+
The language-specific tooling EDRs currently describe similar module layouts in different ways, which causes drift in example placement, cache folders, README expectations, and test organization.
|
|
11
|
+
|
|
12
|
+
What baseline structure rules must every buildable module follow regardless of language?
|
|
13
|
+
|
|
14
|
+
## Decision Outcome
|
|
15
|
+
|
|
16
|
+
**Standardize every buildable module around its own folder root, with `dist/`, `.cache/`, sibling consumer examples, a module README, and predictable test locations.**
|
|
17
|
+
|
|
18
|
+
Language-specific EDRs may add ecosystem details, but they must not redefine these baseline folder responsibilities.
|
|
19
|
+
|
|
20
|
+
### Implementation Details
|
|
21
|
+
|
|
22
|
+
#### 1. Every buildable or publishable module MUST own its folder root
|
|
23
|
+
|
|
24
|
+
A module is the smallest independently buildable, testable, or publishable unit. It MUST live in its own folder and that folder MUST contain:
|
|
25
|
+
|
|
26
|
+
- a `Makefile` following [agentme-edr-008](../devops/008-common-targets.md)
|
|
27
|
+
- a `README.md` for the module itself
|
|
28
|
+
- all configuration files required to build, lint, test, package, or publish that module
|
|
29
|
+
- its generated `dist/` directory when the module produces distributable artifacts
|
|
30
|
+
- a module-local `.cache/` when tool caches are not intentionally shared with a parent aggregation root
|
|
31
|
+
|
|
32
|
+
Example module root:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
<module>/
|
|
36
|
+
├── Makefile
|
|
37
|
+
├── README.md
|
|
38
|
+
├── dist/
|
|
39
|
+
├── .cache/
|
|
40
|
+
└── ... language-specific sources and config ...
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
#### 2. Parent folders are aggregation roots, not hidden implementation buckets
|
|
44
|
+
|
|
45
|
+
Parent folders such as a repository root, an application folder, or `lib/` may aggregate multiple modules. They may also hold shared consumer examples or multi-module test harnesses.
|
|
46
|
+
|
|
47
|
+
They MUST keep the public aggregation obvious: deleting an aggregation folder should remove a coherent API surface or entry-point area, not scatter unrelated internal implementation across the repository.
|
|
48
|
+
|
|
49
|
+
Recommended aggregation pattern:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
<parent>/
|
|
53
|
+
├── <module-a>/
|
|
54
|
+
├── <module-b>/
|
|
55
|
+
├── examples/
|
|
56
|
+
├── tests_integration/
|
|
57
|
+
└── tests_benchmark/
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
#### 3. Build and publish outputs MUST go to `dist/`
|
|
61
|
+
|
|
62
|
+
Distributable outputs such as packages, wheels, archives, generated binaries, or packed example inputs MUST be written under the module's `dist/` folder.
|
|
63
|
+
|
|
64
|
+
`dist/` MUST be gitignored.
|
|
65
|
+
|
|
66
|
+
#### 4. Persistent tool caches MUST live under `.cache/`
|
|
67
|
+
|
|
68
|
+
Tool-generated caches and disposable machine-local state MUST be redirected into the nearest intended `.cache/` folder, either at monorepo level or module level.
|
|
69
|
+
|
|
70
|
+
Examples include:
|
|
71
|
+
|
|
72
|
+
- linter caches
|
|
73
|
+
- test runner caches
|
|
74
|
+
- transpiler incremental state
|
|
75
|
+
- formatter caches
|
|
76
|
+
- dependency-manager caches when local caching is desired
|
|
77
|
+
|
|
78
|
+
If a tool cannot natively choose its cache path, the module `Makefile` MUST wrap or clean that tool so persistent cache files do not remain scattered outside `.cache/` after standard targets run.
|
|
79
|
+
|
|
80
|
+
`.cache/` MUST be gitignored.
|
|
81
|
+
|
|
82
|
+
#### 5. Consumer examples MUST sit outside the module they exercise
|
|
83
|
+
|
|
84
|
+
Examples that demonstrate how to consume a library or reusable module MUST live in a sibling `examples/` folder under the nearest aggregation root, not inside the module folder itself.
|
|
85
|
+
|
|
86
|
+
Examples MUST exercise the module through its public distribution surface:
|
|
87
|
+
|
|
88
|
+
- use the package built into `dist/` when the ecosystem supports local packaged artifacts
|
|
89
|
+
- otherwise use the public module path or equivalent consumer-facing import surface, never relative source-file imports or direct references to internal implementation paths
|
|
90
|
+
|
|
91
|
+
Example:
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
lib/
|
|
95
|
+
└── mymodule/
|
|
96
|
+
|
|
97
|
+
examples/
|
|
98
|
+
└── using-mymodule/
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
#### 6. Every module README MUST explain both usage and development
|
|
102
|
+
|
|
103
|
+
Each module MUST contain a `README.md` that shows how to use the module as a consumer.
|
|
104
|
+
|
|
105
|
+
The end of the README MUST also include short developer instructions for that module, covering at least the standard build, lint, and test entry points.
|
|
106
|
+
|
|
107
|
+
Repository-level READMEs may describe the workspace, but they do not replace the module README.
|
|
108
|
+
|
|
109
|
+
#### 7. Unit, integration, and benchmark tests use predictable locations
|
|
110
|
+
|
|
111
|
+
Unit tests SHOULD be co-located with the file they exercise when that is idiomatic and common for the language.
|
|
112
|
+
|
|
113
|
+
When co-location is uncommon or awkward for the ecosystem, unit tests SHOULD live under `<module>/tests/`.
|
|
114
|
+
|
|
115
|
+
Integration tests MUST live in one of these locations:
|
|
116
|
+
|
|
117
|
+
- `<module>/tests_integration/` when they cover one module
|
|
118
|
+
- `<parent>/tests_integration/` when they cover multiple sibling modules
|
|
119
|
+
|
|
120
|
+
Benchmark tests MUST live in one of these locations:
|
|
121
|
+
|
|
122
|
+
- co-located with the source when the language has a first-class benchmark convention there
|
|
123
|
+
- `<module>/tests_benchmark/` for module-specific harnesses or datasets
|
|
124
|
+
- `<parent>/tests_benchmark/` when they cover multiple sibling modules
|
|
125
|
+
|
|
126
|
+
#### 8. Module Makefiles MUST expose the shared target vocabulary
|
|
127
|
+
|
|
128
|
+
Every module `Makefile` MUST expose the common target names from [agentme-edr-008](../devops/008-common-targets.md). At minimum, modules MUST provide `build`, `lint`, and `test`, and SHOULD also provide `all`, `clean`, and `lint-fix` when meaningful.
|
|
129
|
+
|
|
130
|
+
## References
|
|
131
|
+
|
|
132
|
+
- [agentme-edr-005](../devops/005-monorepo-structure.md) - Monorepo aggregation and delegation rules
|
|
133
|
+
- [agentme-edr-008](../devops/008-common-targets.md) - Shared Makefile target names
|
|
@@ -51,7 +51,7 @@ Good opening questions:
|
|
|
51
51
|
|
|
52
52
|
### How should you organize the XDR?
|
|
53
53
|
|
|
54
|
-
Follow the XDR template from [_core-adr-001](
|
|
54
|
+
Follow the XDR template from [_core-adr-001](../../../../_core/adrs/principles/001-xdrs-core.md). Keep the document small, explicit, and decision-focused.
|
|
55
55
|
|
|
56
56
|
Use this checklist:
|
|
57
57
|
|
|
@@ -87,7 +87,7 @@ If the same clarification would likely be needed in another feature, by another
|
|
|
87
87
|
|
|
88
88
|
## References
|
|
89
89
|
|
|
90
|
-
- [_core-adr-001](
|
|
91
|
-
- [_core-article-001](
|
|
90
|
+
- [_core-adr-001](../../../../_core/adrs/principles/001-xdrs-core.md) - XDR structure, numbering, and mandatory template
|
|
91
|
+
- [_core-article-001](../../../../_core/adrs/principles/articles/001-xdrs-overview.md) - XDR introduction and general adoption guidance
|
|
92
92
|
- [agentme-edr-012](../012-continuous-xdr-enrichment.md) - Shared-first XDR enrichment policy and 80% coverage target
|
|
93
93
|
- [002-write-xdr skill](../../../../../.github/skills/002-write-xdr/SKILL.md) - Step-by-step procedure for drafting new XDRs
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"filedist": "^0.26.0",
|
|
7
|
-
"xdrs-core": "^0.
|
|
7
|
+
"xdrs-core": "^0.16.0"
|
|
8
8
|
},
|
|
9
9
|
"bin": "bin/filedist.js",
|
|
10
10
|
"files": [
|
|
@@ -90,11 +90,30 @@
|
|
|
90
90
|
".github/agents/speckit*",
|
|
91
91
|
".github/prompts/speckit*",
|
|
92
92
|
".specify/**"
|
|
93
|
+
],
|
|
94
|
+
"exclude": [
|
|
95
|
+
".specify/templates/**"
|
|
93
96
|
]
|
|
94
97
|
},
|
|
95
98
|
"output": {
|
|
96
99
|
"path": ".",
|
|
97
|
-
"gitignore": false
|
|
100
|
+
"gitignore": false,
|
|
101
|
+
"readonly": true
|
|
102
|
+
},
|
|
103
|
+
"presets": [
|
|
104
|
+
"speckit"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"selector": {
|
|
109
|
+
"files": [
|
|
110
|
+
".specify/templates/**"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"output": {
|
|
114
|
+
"path": ".",
|
|
115
|
+
"gitignore": false,
|
|
116
|
+
"readonly": false
|
|
98
117
|
},
|
|
99
118
|
"presets": [
|
|
100
119
|
"speckit"
|
|
@@ -110,6 +129,7 @@
|
|
|
110
129
|
"path": ".",
|
|
111
130
|
"managed": false,
|
|
112
131
|
"skipIfExists": true,
|
|
132
|
+
"readonly": false,
|
|
113
133
|
"gitignore": false
|
|
114
134
|
},
|
|
115
135
|
"presets": [
|