agentme 0.27.0 → 0.29.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.
Files changed (40) hide show
  1. package/.filedist-package.yml +1 -1
  2. package/.xdrs/agentme/edrs/application/{003-javascript-project-tooling.md → 101-javascript-project-tooling.md} +8 -8
  3. package/.xdrs/agentme/edrs/application/{010-golang-project-tooling.md → 102-golang-project-tooling.md} +6 -6
  4. package/.xdrs/agentme/edrs/application/{014-python-project-tooling.md → 103-python-project-tooling.md} +11 -11
  5. package/.xdrs/agentme/edrs/application/{015-cli-tool-standards.md → 104-cli-tool-standards.md} +13 -13
  6. package/.xdrs/agentme/edrs/{principles/002-coding-best-practices.md → application/121-coding-best-practices.md} +3 -12
  7. package/.xdrs/agentme/edrs/{principles/004-unit-test-requirements.md → application/122-unit-test-requirements.md} +2 -2
  8. package/.xdrs/agentme/edrs/{principles/009-error-handling.md → application/123-error-handling.md} +2 -2
  9. package/.xdrs/agentme/edrs/{principles/022-secrets-management.md → application/124-secrets-management.md} +5 -5
  10. package/.xdrs/agentme/edrs/{principles/023-coding-abstraction-practices.md → application/125-coding-abstraction-practices.md} +3 -3
  11. package/.xdrs/agentme/edrs/application/{026-pragmatic-hexagonal-architecture.md → 126-pragmatic-hexagonal-architecture.md} +9 -9
  12. package/.xdrs/agentme/edrs/application/{018-ai-llm-development-standards.md → 141-ai-llm-development-standards.md} +14 -14
  13. package/.xdrs/agentme/edrs/application/{019-ai-agents-development-standards.md → 142-ai-agents-development-standards.md} +11 -11
  14. package/.xdrs/agentme/edrs/application/{020-ai-agents-quality-standards.md → 143-ai-agents-quality-standards.md} +16 -16
  15. package/.xdrs/agentme/edrs/application/{021-ai-workflow-development-standards.md → 144-ai-workflow-development-standards.md} +28 -28
  16. package/.xdrs/agentme/edrs/application/{029-ai-workflow-naming-conventions.md → 145-ai-workflow-naming-conventions.md} +9 -9
  17. package/.xdrs/agentme/edrs/application/{025-ai-agent-xdrs-knowledge-layer.md → 146-ai-agent-xdrs-knowledge-layer.md} +7 -7
  18. package/.xdrs/agentme/edrs/application/{028-ai-eval-core-standards.md → 151-ai-eval-core-standards.md} +18 -17
  19. package/.xdrs/agentme/edrs/application/{030-ai-test-types-taxonomy.md → 152-ai-test-types-taxonomy.md} +27 -27
  20. package/.xdrs/agentme/edrs/application/{031-ai-eval-script.md → 153-ai-eval-script.md} +18 -18
  21. package/.xdrs/agentme/edrs/application/{032-ai-eval-report-format.md → 154-ai-eval-report-format.md} +6 -6
  22. package/.xdrs/agentme/edrs/application/{033-ai-eval-repeatability.md → 155-ai-eval-repeatability.md} +14 -14
  23. package/.xdrs/agentme/edrs/application/skills/001-create-javascript-project/SKILL.md +4 -4
  24. package/.xdrs/agentme/edrs/application/skills/003-create-golang-project/SKILL.md +3 -3
  25. package/.xdrs/agentme/edrs/application/skills/004-select-relevant-xdrs/SKILL.md +9 -9
  26. package/.xdrs/agentme/edrs/application/skills/005-create-python-project/SKILL.md +5 -5
  27. package/.xdrs/agentme/edrs/{application/024-ml-dataset-structure.md → data/201-ml-dataset-structure.md} +4 -4
  28. package/.xdrs/agentme/edrs/{principles/007-project-quality-standards.md → governance/501-project-quality-standards.md} +16 -16
  29. package/.xdrs/agentme/edrs/governance/{013-contributing-guide-requirements.md → 502-contributing-guide-requirements.md} +4 -4
  30. package/.xdrs/agentme/edrs/index.md +40 -34
  31. package/.xdrs/agentme/edrs/{observability/011-service-health-check-endpoint.md → operations/401-service-health-check-endpoint.md} +2 -2
  32. package/.xdrs/agentme/edrs/{devops/005-monorepo-structure.md → platform/301-monorepo-structure.md} +6 -4
  33. package/.xdrs/agentme/edrs/{devops/006-github-pipelines.md → platform/302-github-pipelines.md} +3 -3
  34. package/.xdrs/agentme/edrs/{devops/008-common-targets.md → platform/303-common-targets.md} +20 -20
  35. package/.xdrs/agentme/edrs/{devops/017-tool-execution-and-scripting.md → platform/304-tool-execution-and-scripting.md} +10 -10
  36. package/.xdrs/agentme/edrs/{devops/027-environment-variable-configuration.md → platform/305-environment-variable-configuration.md} +14 -14
  37. package/.xdrs/agentme/edrs/{devops → platform}/skills/002-monorepo-setup/SKILL.md +3 -3
  38. package/.xdrs/agentme/edrs/principles/012-continuous-xdr-enrichment.md +1 -1
  39. package/.xdrs/agentme/edrs/principles/016-cross-language-module-structure.md +4 -4
  40. package/package.json +2 -2
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: agentme-edr-policy-011-service-health-check-endpoint
2
+ name: agentme-edr-policy-401-service-health-check-endpoint
3
3
  description: Defines the required health endpoint contract for service availability and dependency readiness checks. Use when implementing or reviewing service health endpoints.
4
4
  apply-to: Service projects with health endpoints
5
5
  valid-from: 2026-05-25
6
6
  ---
7
7
 
8
- # agentme-edr-policy-011: Service health check endpoint
8
+ # agentme-edr-policy-401: Service health check endpoint
9
9
 
10
10
  ## Context and Problem Statement
11
11
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: agentme-edr-policy-005-monorepo-structure
2
+ name: agentme-edr-policy-301-monorepo-structure
3
3
  description: Defines the standard monorepo layout, naming, and build conventions using shared areas, Mise, and Makefiles. Use when creating or reviewing monorepos.
4
4
  apply-to: Monorepo projects
5
5
  valid-from: 2026-05-25
6
6
  ---
7
7
 
8
- # agentme-edr-policy-005: Monorepo structure
8
+ # agentme-edr-policy-301: Monorepo structure
9
9
 
10
10
  ## Context and Problem Statement
11
11
 
@@ -24,6 +24,8 @@ Module folder responsibilities, artifact locations, and test-folder conventions
24
24
 
25
25
  #### 01-top-level-directory-layout
26
26
 
27
+ Every monorepo MUST follow this top-level directory layout:
28
+
27
29
  ```
28
30
  /
29
31
  ├── .cache/ # Optional shared cache for repo-level tooling
@@ -76,7 +78,7 @@ Module folder responsibilities, artifact locations, and test-folder conventions
76
78
 
77
79
  A `Makefile` MUST be present at the repository root, in every application folder, and in every module folder.
78
80
 
79
- All Makefiles MUST use the shared target vocabulary from [agentme-edr-008](008-common-targets.md).
81
+ All Makefiles MUST use the shared target vocabulary from [agentme-edr-303](303-common-targets.md).
80
82
 
81
83
  Repository, application, and module Makefiles MUST define at minimum: `all`, `build`, `lint`, `test`, and `clean`.
82
84
 
@@ -92,7 +94,7 @@ The root `setup` target MUST run `mise install` and any small repository bootstr
92
94
  - Every language runtime or CLI referenced by any module `Makefile`, CI workflow, or README command MUST be pinned in `.mise.toml`.
93
95
  - Contributors and CI run `make setup` after cloning or checkout; this target MUST call `mise install`.
94
96
  - Agents and contributors MUST check `.mise.toml` before using a system-installed compiler, runtime, or CLI.
95
- - When `.mise.toml` exists, all build, test, lint, and code-generation commands MUST run through `make <target>`, and the Makefile recipes MUST execute the underlying tools via `mise exec -- <command>`, following [agentme-edr-017](017-tool-execution-and-scripting.md).
97
+ - When `.mise.toml` exists, all build, test, lint, and code-generation commands MUST run through `make <target>`, and the Makefile recipes MUST execute the underlying tools via `mise exec -- <command>`, following [agentme-edr-304](304-tool-execution-and-scripting.md).
96
98
  - If a required tool is missing, the first remediation step MUST be to update `.mise.toml` or run `mise install`, not to install ad-hoc global tools with language-specific installers such as `go install`, `npm install -g`, `pip install --user`, or `cargo install`.
97
99
  - Root and module `Makefile` targets MUST work when invoked as plain `make <target>` after `make setup`.
98
100
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: agentme-edr-policy-006-github-ci-cd-pipelines
2
+ name: agentme-edr-policy-302-github-ci-cd-pipelines
3
3
  description: Defines the standard GitHub Actions workflow split for CI, release tagging, and publishing. Use when configuring project automation.
4
4
  apply-to: Projects using GitHub Actions
5
5
  valid-from: 2026-05-25
6
6
  ---
7
7
 
8
- # agentme-edr-policy-006: GitHub CI/CD pipelines
8
+ # agentme-edr-policy-302: GitHub CI/CD pipelines
9
9
 
10
10
  ## Context and Problem Statement
11
11
 
@@ -142,7 +142,7 @@ jobs:
142
142
 
143
143
  *Why rebuild on publish:* The checkout is done from the exact tag commit. Rebuilding ensures the published artifact matches exactly what is tagged, rather than relying on a prior CI artifact.
144
144
 
145
- *Why `id-token: write`:* Required for npm provenance attestation via `npm publish --provenance`, as specified in [agentme-edr-003](../application/003-javascript-project-tooling.md).
145
+ *Why `id-token: write`:* Required for npm provenance attestation via `npm publish --provenance`, as specified in [agentme-edr-101](../application/101-javascript-project-tooling.md).
146
146
 
147
147
  ---
148
148
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: agentme-edr-policy-008-common-development-script-names
2
+ name: agentme-edr-policy-303-common-development-script-names
3
3
  description: Defines standard Makefile target names and the mandatory tool-execution flow using Mise. Use when designing build, lint, test, and release entry points.
4
4
  apply-to: All projects with Makefiles
5
5
  valid-from: 2026-05-25
6
6
  ---
7
7
 
8
- # agentme-edr-policy-008: Common development script names
8
+ # agentme-edr-policy-303: Common development script names
9
9
 
10
10
  ## Context and Problem Statement
11
11
 
@@ -15,7 +15,7 @@ What standard set of Makefile target names and execution rules should projects a
15
15
 
16
16
  ## Decision Outcome
17
17
 
18
- **Every project MUST expose its development actions through a root `Makefile` using a defined set of standardized target names. Target implementation and tool-execution rules follow [agentme-edr-017](017-tool-execution-and-scripting.md), which requires `mise exec --` before routine tool commands.**
18
+ **Every project MUST expose its development actions through a root `Makefile` using a defined set of standardized target names. Target implementation and tool-execution rules follow [agentme-edr-304](304-tool-execution-and-scripting.md), which requires `mise exec --` before routine tool commands.**
19
19
 
20
20
  Standardizing both the target names and the execution chain removes per-project guesswork, makes CI pipelines reusable, and keeps tooling behavior visible in one place.
21
21
 
@@ -49,7 +49,7 @@ make <target>
49
49
 
50
50
  - The `setup` target MUST run `mise install` and any small project-specific bootstrap needed before normal targets work.
51
51
  - Routine targets such as `build`, `lint`, `test`, `run`, and `publish` MUST be invoked as `make <target>` by both contributors and CI.
52
- - Each Makefile recipe MUST call the real underlying command through `mise exec --`, following [agentme-edr-017](017-tool-execution-and-scripting.md).
52
+ - Each Makefile recipe MUST call the real underlying command through `mise exec --`, following [agentme-edr-304](304-tool-execution-and-scripting.md).
53
53
  - Makefile recipes MUST NOT add extra script layers such as `npm run`, `pnpm run`, `yarn run`, `mise run`, `mise tasks`, or shell aliases when those layers only forward to another command.
54
54
  - Calling the actual tool is allowed even when that tool itself launches another program as part of its normal interface.
55
55
  - Allowed: `mise exec -- pnpm exec eslint ./src`
@@ -73,10 +73,10 @@ Targets are organized into five lifecycle groups. Projects MUST use these names
73
73
  | Target | Purpose |
74
74
  |--------|---------|
75
75
  | `setup` | Run `mise install` and any small project bootstrap needed before normal targets work. This is the first command after checkout. |
76
- | `all` | Alias that runs `build`, `lint`, and `test` in sequence. **MUST** be the default target (i.e., running `make` or the runner with no arguments invokes `all`). Used by developers as a fast pre-push check to verify the software meets minimum quality standards in one command. **MUST** only invoke targets that run **offline** — no external credentials, running servers, paid APIs, or environment-specific configuration outside the repository. |
76
+ | `all` | Alias that runs `build`, `lint`, and `test` in sequence. MUST be the default target (i.e., running `make` or the runner with no arguments invokes `all`). Used by developers as a fast pre-push check to verify the software meets minimum quality standards in one command. MUST only invoke targets that run **offline** — no external credentials, running servers, paid APIs, or environment-specific configuration outside the repository. |
77
77
  | `clean` | Remove all temporary or generated files created during build, lint, or test (e.g., `node_modules`, virtual environments, compiled binaries, generated files). Used both locally and in CI for a clean slate. |
78
78
  | `dev` | Run the software locally for development (e.g., start a Node.js API server, open a Jupyter notebook, launch a React dev server). May have debugging tools, verbose logging, or hot reloading features enabled. |
79
- | `run` | Run the software in production mode (e.g., start a compiled binary, launch a production server). Debugging or development-only features **SHOULD NOT** be enabled. |
79
+ | `run` | Run the software in production mode (e.g., start a compiled binary, launch a production server). Debugging or development-only features SHOULD NOT be enabled. |
80
80
  | `update-lockfile` | Update the dependency lockfile to reflect the latest resolved versions of all dependencies. |
81
81
 
82
82
  ##### Build group
@@ -93,17 +93,17 @@ Targets are organized into five lifecycle groups. Projects MUST use these names
93
93
 
94
94
  | Target | Purpose |
95
95
  |--------|---------|
96
- | `lint` | Run **all static quality checks** outside of tests. This MUST include: code formatting validation, code style enforcement, code smell detection, static analysis, dependency audits for known CVEs, security vulnerability scans (e.g., SAST), and project/configuration structure checks. All checks **MUST** be non-destructive (read-only); fixes are handled by `lint-fix`. **MUST** only invoke subtargets that run **offline** (no external credentials or services). |
96
+ | `lint` | Run **all static quality checks** outside of tests. This MUST include: code formatting validation, code style enforcement, code smell detection, static analysis, dependency audits for known CVEs, security vulnerability scans (e.g., SAST), and project/configuration structure checks. All checks MUST be non-destructive (read-only); fixes are handled by `lint-fix`. MUST only invoke subtargets that run **offline** (no external credentials or services). |
97
97
  | `lint-fix` | Automatically fix linting and formatting issues where possible. || `lint-format` | *(Optional)* Check code formatting only (e.g., Prettier, gofmt, Black). |
98
98
  ##### Test group
99
99
 
100
100
  | Target | Purpose |
101
101
  |--------|---------|
102
- | `test` | Run **all offline tests** required for the project. This MUST include unit tests (with coverage enforcement — the build MUST fail if coverage thresholds are not met) and any integration or end-to-end tests that run **offline** (no external servers, credentials, or paid APIs). Normally delegates to `test-unit` and, when offline, `test-integration` in sequence. Suffixed targets that require external dependencies **MUST NOT** be invoked automatically — see rule 08. |
102
+ | `test` | Run **all offline tests** required for the project. This MUST include unit tests (with coverage enforcement — the build MUST fail if coverage thresholds are not met) and any integration or end-to-end tests that run **offline** (no external servers, credentials, or paid APIs). Normally delegates to `test-unit` and, when offline, `test-integration` in sequence. Suffixed targets that require external dependencies MUST NOT be invoked automatically — see rule 08. |
103
103
  | `test-unit` | Run unit tests only, including coverage report generation and coverage threshold enforcement. |
104
104
  | `test-integration` | *(Optional)* Run integration and end-to-end tests only. Projects without integration tests MAY omit this target. |
105
105
  | `test-smoke` | *(Optional)* Run a fast, minimal subset of tests to verify the software is basically functional. Useful as a post-deploy health check. |
106
- | `eval` | *(Optional)* Run **all evaluations** for the module. Used alongside `test` to measure the accuracy and performance of statistical systems such as ML models, AI agents, or noisy systems. Typically runs against a live or near-live system (similar to an integration test) and produces a performance analysis report (e.g., F1 score, Accuracy, Precision, Recall). **MUST NOT** be included in `test` or `all` — evals are opt-in because they require live dependencies and MAY be slow or costly to run. Individual evaluations **MUST** follow the prefix convention: `eval-<qualifier>` (e.g., `eval-simple`, `eval-complex`). |
106
+ | `eval` | *(Optional)* Run **all evaluations** for the module. Used alongside `test` to measure the accuracy and performance of statistical systems such as ML models, AI agents, or noisy systems. Typically runs against a live or near-live system (similar to an integration test) and produces a performance analysis report (e.g., F1 score, Accuracy, Precision, Recall). MUST NOT be included in `test` or `all` — evals are opt-in because they require live dependencies and MAY be slow or costly to run. Individual evaluations MUST follow the prefix convention: `eval-<qualifier>` (e.g., `eval-simple`, `eval-complex`). |
107
107
 
108
108
  ##### Release group
109
109
 
@@ -119,18 +119,18 @@ Targets are organized into five lifecycle groups. Projects MUST use these names
119
119
 
120
120
  #### 04-standard-environment-variables
121
121
 
122
- Two environment variables have defined semantics and **MUST** be used consistently.
122
+ Two environment variables have defined semantics and MUST be used consistently.
123
123
 
124
124
  | Variable | Purpose |
125
125
  |----------|---------|
126
- | `STAGE` | Identifies the runtime environment. Format: `[prefix][-variant]`. Common prefixes: `dev`, `tst`, `acc`, `prd`. Examples: `dev`, `dev-pr123`, `tst`, `prd-blue`. **MAY** be required by any target that is environment-aware (build, lint, deploy, etc.). |
126
+ | `STAGE` | Identifies the runtime environment. Format: `[prefix][-variant]`. Common prefixes: `dev`, `tst`, `acc`, `prd`. Examples: `dev`, `dev-pr123`, `tst`, `prd-blue`. MAY be required by any target that is environment-aware (build, lint, deploy, etc.). |
127
127
  | `VERSION` | Sets the explicit version used during packaging and deployment. Used when there is no automatic version-tagging utility, or to override it. |
128
128
 
129
129
  ---
130
130
 
131
131
  #### 05-extending-targets-with-prefixes
132
132
 
133
- Projects **MAY** add custom targets beyond the standard set. Custom targets **MUST** be named by prefixing a standard target name with a descriptive qualifier, keeping the naming intuitive and consistent with the group it belongs to.
133
+ Projects MAY add custom targets beyond the standard set. Custom targets MUST be named by prefixing a standard target name with a descriptive qualifier, keeping the naming intuitive and consistent with the group it belongs to.
134
134
 
135
135
  **Examples:**
136
136
 
@@ -152,7 +152,7 @@ The prefix convention ensures developers can infer the purpose of any target wit
152
152
 
153
153
  #### 06-monorepo-usage
154
154
 
155
- In a monorepo, each module has its own `Makefile` with its own `build`, `lint`, `test`, and `deploy` targets scoped to that module. Parent-level Makefiles (at the application or repo root) delegate to child Makefiles in sequence. The parent Makefile **SHOULD** call `$(MAKE) -C <child> <target>` directly, while each child `Makefile` runs its actual tool commands through `mise exec --`.
155
+ In a monorepo, each module has its own `Makefile` with its own `build`, `lint`, `test`, and `deploy` targets scoped to that module. Parent-level Makefiles (at the application or repo root) delegate to child Makefiles in sequence. The parent Makefile SHOULD call `$(MAKE) -C <child> <target>` directly, while each child `Makefile` runs its actual tool commands through `mise exec --`.
156
156
 
157
157
  ```makefile
158
158
  # root Makefile — delegates to all modules
@@ -165,9 +165,9 @@ test:
165
165
  $(MAKE) -C module-b test
166
166
  ```
167
167
 
168
- A developer can run `make test` at the repo root to test everything, or `cd module-a && make test` to test a single module. Both **MUST** work.
168
+ A developer can run `make test` at the repo root to test everything, or `cd module-a && make test` to test a single module. Both MUST work.
169
169
 
170
- **Reference:** See [agentme-edr-005](005-monorepo-structure.md) for the full monorepo layout convention.
170
+ **Reference:** See [agentme-edr-301](301-monorepo-structure.md) for the full monorepo layout convention.
171
171
 
172
172
  ---
173
173
 
@@ -220,15 +220,15 @@ make all
220
220
 
221
221
  #### 08-default-targets-must-only-include-offline-subtargets
222
222
 
223
- `make all`, `make test`, and `make lint` **MUST** include every subtarget that runs **offline** — meaning it requires no external credentials, no running servers, no paid APIs, and no environment-specific configuration outside the repository.
223
+ `make all`, `make test`, and `make lint` MUST include every subtarget that runs **offline** — meaning it requires no external credentials, no running servers, no paid APIs, and no environment-specific configuration outside the repository.
224
224
 
225
- Subtargets that require external dependencies (e.g., `test-integration` against a live database, `test-e2e` against a staging environment, `lint-api` against a remote schema registry) **MUST** exist as named targets so developers can invoke them explicitly, but **MUST NOT** be invoked from `all`, `test`, or `lint`.
225
+ Subtargets that require external dependencies (e.g., `test-integration` against a live database, `test-e2e` against a staging environment, `lint-api` against a remote schema registry) MUST exist as named targets so developers can invoke them explicitly, but MUST NOT be invoked from `all`, `test`, or `lint`.
226
226
 
227
227
  ---
228
228
 
229
229
  #### 09-ai-project-dev-targets
230
230
 
231
- AI-based projects (LLM, Agent, and Workflow tiers as defined in [agentme-edr-018](../application/018-ai-llm-development-standards.md)) MUST expose a `dev-mlflow` target that starts a local MLflow tracking server for development inspection.
231
+ AI-based projects (LLM, Agent, and Workflow tiers as defined in [agentme-edr-141](../application/141-ai-llm-development-standards.md)) MUST expose a `dev-mlflow` target that starts a local MLflow tracking server for development inspection.
232
232
 
233
233
  **Example implementation:**
234
234
 
@@ -251,5 +251,5 @@ dev-mlflow:
251
251
 
252
252
  ## References
253
253
 
254
- - [agentme-edr-005](005-monorepo-structure.md) - Monorepo layout and delegation structure
255
- - [agentme-edr-017](017-tool-execution-and-scripting.md) - Tool-execution rules for Makefile targets and CI
254
+ - [agentme-edr-301](301-monorepo-structure.md) - Monorepo layout and delegation structure
255
+ - [agentme-edr-304](304-tool-execution-and-scripting.md) - Tool-execution rules for Makefile targets and CI
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: agentme-edr-policy-017-tool-execution-and-scripting
2
+ name: agentme-edr-policy-304-tool-execution-and-scripting
3
3
  description: Defines how Makefiles, CI pipelines, and optional wrapper scripts execute project commands. Use when designing project automation or command entry points.
4
4
  apply-to: All projects with Makefiles and CI pipelines
5
5
  valid-from: 2026-05-25
6
6
  ---
7
7
 
8
- # agentme-edr-policy-017: Tool execution and scripting
8
+ # agentme-edr-policy-304: Tool execution and scripting
9
9
 
10
10
  ## Context and Problem Statement
11
11
 
@@ -15,14 +15,14 @@ How should projects execute development commands so the command surface stays pr
15
15
 
16
16
  ## Decision Outcome
17
17
 
18
- **Use Makefiles as the only authoritative command entry point, with targets named by [agentme-edr-008](008-common-targets.md) and implemented with `mise exec --` before the real tool command.**
18
+ **Use Makefiles as the only authoritative command entry point, with targets named by [agentme-edr-303](303-common-targets.md) and implemented with `mise exec --` before the real tool command.**
19
19
 
20
20
  This keeps local development and CI aligned, reduces indirection, and lets contributors understand project behavior by reading one command surface.
21
21
 
22
22
  ### Details
23
23
 
24
24
  - Every project MUST use a root `Makefile` as the authoritative entry point for developer and pipeline commands.
25
- - The target names in that `Makefile` MUST follow [agentme-edr-008](008-common-targets.md).
25
+ - The target names in that `Makefile` MUST follow [agentme-edr-303](303-common-targets.md).
26
26
  - CI pipelines MUST run `make <target>` from the relevant root instead of calling language-specific scripts such as `npm run`, `pnpm run`, shell wrappers, or secondary task runners.
27
27
  - A Makefile target MUST execute the real operation through `mise exec --` before invoking the tool itself, so it MUST use the version pinned in `.mise.toml`. Avoid intermediate script layers that hide the actual command.
28
28
  - Every Makefile target MUST start by echoing a concise summary of the target and folder or context, using fewer than 10 words. When delegating to another Makefile, echo the child path and delegated target before invoking it.
@@ -58,9 +58,9 @@ Disallowed:
58
58
 
59
59
  ## References
60
60
 
61
- - [agentme-edr-005](005-monorepo-structure.md) - Monorepo layout and Makefile hierarchy
62
- - [agentme-edr-006](006-github-pipelines.md) - CI/CD workflows should call Make targets
63
- - [agentme-edr-008](008-common-targets.md) - Standard target names
64
- - [agentme-edr-003](../application/003-javascript-project-tooling.md) - JavaScript tooling commands inside Makefiles
65
- - [agentme-edr-010](../application/010-golang-project-tooling.md) - Go tooling commands inside Makefiles
66
- - [agentme-edr-014](../application/014-python-project-tooling.md) - Python tooling commands inside Makefiles
61
+ - [agentme-edr-301](301-monorepo-structure.md) - Monorepo layout and Makefile hierarchy
62
+ - [agentme-edr-302](302-github-pipelines.md) - CI/CD workflows should call Make targets
63
+ - [agentme-edr-303](303-common-targets.md) - Standard target names
64
+ - [agentme-edr-101](../application/101-javascript-project-tooling.md) - JavaScript tooling commands inside Makefiles
65
+ - [agentme-edr-102](../application/102-golang-project-tooling.md) - Go tooling commands inside Makefiles
66
+ - [agentme-edr-103](../application/103-python-project-tooling.md) - Python tooling commands inside Makefiles
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: agentme-edr-policy-027-environment-variable-configuration-files
2
+ name: agentme-edr-policy-305-environment-variable-configuration-files
3
3
  description: Defines when to use YAML config files versus .env files for configuration, how to combine them, and how .env is loaded for spawned processes. Use when setting up project configuration for any application, CLI, or library.
4
4
  apply-to: All projects that use environment variables for configuration
5
5
  valid-from: 2026-06-09
6
6
  ---
7
7
 
8
- # agentme-edr-policy-027: Environment variable configuration files
8
+ # agentme-edr-policy-305: Environment variable configuration files
9
9
 
10
10
  ## Context and Problem Statement
11
11
 
@@ -19,7 +19,7 @@ How should projects manage environment variable configuration and CLI invocation
19
19
 
20
20
  **Use YAML config files for CLI invocation configuration with multiple attributes; use `.env` files to supply environment variables to spawned processes and to hold uncommitted values referenced by config files. Load `.env` exclusively at process launch time — MUST NOT be loaded inside application code.**
21
21
 
22
- Secrets (API keys, passwords, tokens) MUST NOT be placed in `.env` files. Those are handled by [agentme-edr-022](../principles/022-secrets-management.md).
22
+ Secrets (API keys, passwords, tokens) MUST NOT be placed in `.env` files. Those are handled by [agentme-edr-124](../application/124-secrets-management.md).
23
23
 
24
24
  ### Details
25
25
 
@@ -28,7 +28,7 @@ Secrets (API keys, passwords, tokens) MUST NOT be placed in `.env` files. Those
28
28
  A `.env` file MUST be used when either of the following is true:
29
29
 
30
30
  1. **Spawned process needs env vars** — the project launches a process (a deployable service, background worker, or shell script) that reads configuration from OS environment variables such as port numbers or API endpoint URLs.
31
- 2. **Value must not be committed** — a configuration value used in a YAML config file (see rule 07) is environment-specific or sensitive enough to exclude from version control. In that case, store the value in `.env` and reference it from the YAML file using env var substitution (see rule 08).
31
+ 2. **Value MUST NOT be committed** — a configuration value used in a YAML config file (see rule 07) is environment-specific or sensitive enough to exclude from version control. In that case, store the value in `.env` and reference it from the YAML file using env var substitution (see rule 08).
32
32
 
33
33
  Do not use `.env` as a general-purpose configuration store when a YAML config file is the right tool (see rule 07).
34
34
 
@@ -64,7 +64,7 @@ FEATURE_FLAG_NEW_UI=false
64
64
 
65
65
  Stage-specific overrides MUST use the naming convention `.env.[stage]` (e.g., `.env.production`, `.env.staging`, `.env.test`). These files may be committed to the repository because they carry deployment-stage configuration rather than local developer configuration. They are used during deployment pipelines where the stage is known and explicit.
66
66
 
67
- The generic `.env` must still not be committed. The distinction is: `.env` is for local, ad-hoc, standalone use; `.env.[stage]` is for deployment pipelines with a defined environment identity.
67
+ The generic `.env` MUST NOT be committed. The distinction is: `.env` is for local, ad-hoc, standalone use; `.env.[stage]` is for deployment pipelines with a defined environment identity.
68
68
 
69
69
  ---
70
70
 
@@ -85,7 +85,7 @@ This ensures all variables in `.env` are available as environment variables to e
85
85
 
86
86
  #### 06-no-application-level-dotenv-loading
87
87
 
88
- Applications MUST NOT load `.env` files directly inside their own code using dotenv libraries or equivalent mechanisms. Configuration must enter the process exclusively as OS-level environment variables, set before the process is launched (by the Makefile, a shell script, CI, or a container runtime).
88
+ Applications MUST NOT load `.env` files directly inside their own code using dotenv libraries or equivalent mechanisms. Configuration MUST enter the process exclusively as OS-level environment variables, set before the process is launched (by the Makefile, a shell script, CI, or a container runtime).
89
89
 
90
90
  Prohibited patterns:
91
91
 
@@ -116,9 +116,9 @@ This rule prevents two parallel loading paths — OS env and file-based env —
116
116
 
117
117
  CLI adapters with multiple configuration attributes MUST use a YAML config file rather than env vars or flags for those attributes. This applies whenever configuration is nested, repetitive, or too verbose for flags alone.
118
118
 
119
- The CLI layer is responsible for loading and parsing the YAML file and passing the resolved values to the application layer. The application layer must not read the config file directly.
119
+ The CLI layer is responsible for loading and parsing the YAML file and passing the resolved values to the application layer. The application layer MUST NOT read the config file directly.
120
120
 
121
- Default config file discovery should follow the pattern defined in [agentme-edr-015](../application/015-cli-tool-standards.md): load `[cwd]/[tool-name].yml` by default, or an explicit path provided via `--config`.
121
+ Default config file discovery SHOULD follow the pattern defined in [agentme-edr-104](../application/104-cli-tool-standards.md): load `[cwd]/[tool-name].yml` by default, or an explicit path provided via `--config`.
122
122
 
123
123
  Example `myconfig.yml`:
124
124
  ```yaml
@@ -131,7 +131,7 @@ max_retries: 3
131
131
 
132
132
  #### 08-env-var-substitution-in-config-files
133
133
 
134
- When a YAML config file contains a value that MUST NOT be committed (such as a real endpoint URL, a username, or any other environment-specific value), that value must be expressed as an environment variable reference using `${VAR_NAME}` syntax, and the actual value must be defined in `.env`.
134
+ When a YAML config file contains a value that MUST NOT be committed (such as a real endpoint URL, a username, or any other environment-specific value), that value MUST be expressed as an environment variable reference using `${VAR_NAME}` syntax, and the actual value MUST be defined in `.env`.
135
135
 
136
136
  This keeps the YAML file committable while keeping the environment-specific value out of the repository.
137
137
 
@@ -148,11 +148,11 @@ openapi_endpoint: ${OPENAPI_ENDPOINT}
148
148
  log_level: debug
149
149
  ```
150
150
 
151
- The `.env` file must be loaded in the Makefile before launching the process (see rule 05) so the variable is available when the CLI or process reads the config file.
151
+ The `.env` file MUST be loaded in the Makefile before launching the process (see rule 05) so the variable is available when the CLI or process reads the config file.
152
152
 
153
153
  ## References
154
154
 
155
- - [agentme-edr-022](../principles/022-secrets-management.md) - Secrets must use OS keychains or cloud secret managers, not `.env` files
156
- - [agentme-edr-017](017-tool-execution-and-scripting.md) - Makefiles are the authoritative command entry point; rule 05 above integrates with that standard
157
- - [agentme-edr-008](008-common-targets.md) - Standard Makefile target names
158
- - [agentme-edr-015](../application/015-cli-tool-standards.md) - CLI config file discovery and CLI-to-application separation
155
+ - [agentme-edr-124](../application/124-secrets-management.md) - Secrets must use OS keychains or cloud secret managers, not `.env` files
156
+ - [agentme-edr-304](304-tool-execution-and-scripting.md) - Makefiles are the authoritative command entry point; rule 05 above integrates with that standard
157
+ - [agentme-edr-303](303-common-targets.md) - Standard Makefile target names
158
+ - [agentme-edr-104](../application/104-cli-tool-standards.md) - CLI config file discovery and CLI-to-application separation
@@ -3,7 +3,7 @@ name: 002-monorepo-setup
3
3
  description: >
4
4
  Step-by-step instructions for setting up and scaffolding a new monorepo following the standard
5
5
  layout, naming conventions, Makefiles, Mise tooling, and README requirements defined in
6
- agentme-edr-005. Activate this skill when the user asks to create, initialize, or set up a
6
+ agentme-edr-301. Activate this skill when the user asks to create, initialize, or set up a
7
7
  monorepo, add a new application or module to an existing monorepo, or verify that a monorepo
8
8
  complies with the standard structure.
9
9
  metadata:
@@ -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](../../005-monorepo-structure.md):
16
+ Creates or extends a monorepo that follows the standard layout from [agentme-edr-301](../../301-monorepo-structure.md):
17
17
  top-level application folders, independent module roots, sibling example and multi-module test
18
18
  areas, Mise-managed tooling, and Makefiles at every level so any contributor can build, lint, and
19
19
  test any part of the monorepo with a single, predictable command.
20
20
 
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)
21
+ Related EDRs: [agentme-edr-301](../../301-monorepo-structure.md), [agentme-edr-502](../../../governance/502-contributing-guide-requirements.md), [agentme-edr-016](../../../principles/016-cross-language-module-structure.md)
22
22
 
23
23
  ## Instructions
24
24
 
@@ -35,7 +35,7 @@ When developers or coding agents need too much detailed steering to complete a t
35
35
 
36
36
  #### 04-coverage-target-should-be-80-percent
37
37
 
38
- Teams SHOULD aim to keep at least 80% of big coding decisions covered by accepted XDRs. Big decisions include framework or tool selection, overall code organization, monorepo structure, complex business flows, and coding standards. If a big decision is not yet covered, developers SHOULD either propose a new XDR or document why the decision is intentionally local and should not be shared.
38
+ Teams SHOULD aim to keep at least 80% of big coding decisions covered by accepted XDRs. Big decisions include framework or tool selection, overall code organization, monorepo structure, complex business flows, and coding standards. If a big decision is not yet covered, developers SHOULD either propose a new XDR or document why the decision is intentionally local and SHOULD NOT be shared.
39
39
 
40
40
  #### 05-leaders-must-review-xdr-proposals
41
41
 
@@ -25,7 +25,7 @@ Language-specific EDRs MAY add ecosystem details, but they MUST NOT redefine the
25
25
 
26
26
  A module is the smallest independently buildable, testable, or publishable unit. It MUST live in its own folder and that folder MUST contain:
27
27
 
28
- - a `Makefile` following [agentme-edr-008](../devops/008-common-targets.md)
28
+ - a `Makefile` following [agentme-edr-303](../platform/303-common-targets.md)
29
29
  - a `README.md` for the module itself
30
30
  - all configuration files needed to build, lint, test, package, or publish that module
31
31
  - its generated `dist/` directory when the module produces distributable artifacts
@@ -127,9 +127,9 @@ Benchmark tests MUST live in one of these locations:
127
127
 
128
128
  #### 08-module-makefiles-must-expose-shared-targets
129
129
 
130
- 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.
130
+ Every module `Makefile` MUST expose the common target names from [agentme-edr-303](../platform/303-common-targets.md). At minimum, modules MUST provide `build`, `lint`, and `test`, and SHOULD also provide `all`, `clean`, and `lint-fix` when meaningful.
131
131
 
132
132
  ## References
133
133
 
134
- - [agentme-edr-005](../devops/005-monorepo-structure.md) - Monorepo aggregation and delegation rules
135
- - [agentme-edr-008](../devops/008-common-targets.md) - Shared Makefile target names
134
+ - [agentme-edr-301](../platform/301-monorepo-structure.md) - Monorepo aggregation and delegation rules
135
+ - [agentme-edr-303](../platform/303-common-targets.md) - Shared Makefile target names
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentme",
3
- "version": "0.27.0",
3
+ "version": "0.29.0",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "filedist": "^0.39.0"
@@ -18,6 +18,6 @@
18
18
  "url": "https://github.com/flaviostutz/agentme.git"
19
19
  },
20
20
  "devDependencies": {
21
- "xdrs-core": "^0.38.0"
21
+ "xdrs-core": "^0.41.0"
22
22
  }
23
23
  }