create-agdf 0.1.3 → 0.1.5
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/README.md +8 -4
- package/bin/create-agdf.js +57 -9
- package/generated/.agents/plugins/marketplace.json +20 -0
- package/generated/.github/copilot-instructions.md +10 -0
- package/generated/.github/instructions/agdf-governance.instructions.md +13 -0
- package/generated/plugins/agdf/.codex-plugin/plugin.json +30 -0
- package/generated/plugins/agdf/control/README.md +39 -0
- package/generated/plugins/agdf/control/templates/AGDF_RUN.md +84 -0
- package/generated/plugins/agdf/control/templates/AGENT_QUALITY_CONTRACTS.json +78 -0
- package/generated/plugins/agdf/control/templates/CONTEXT_GRAPH.md +51 -0
- package/generated/plugins/agdf/control/templates/MASTER_BACKLOG.md +29 -0
- package/generated/plugins/agdf/control/templates/SOT_REGISTRY.md +25 -0
- package/generated/plugins/agdf/hooks/hooks.json +15 -0
- package/generated/plugins/agdf/hooks/session-start.sh +10 -0
- package/generated/plugins/agdf/meta/agdf-constitution.md +312 -0
- package/generated/plugins/agdf/meta/agdf-copilot-agents.md +77 -0
- package/generated/plugins/agdf/meta/agdf-runtime-contract.md +85 -0
- package/generated/plugins/agdf/meta/agdf-tenets.md +191 -0
- package/generated/plugins/agdf/skills/agdf-brownfield-analysis/SKILL.md +116 -0
- package/generated/plugins/agdf/skills/agdf-brownfield-analysis/help.md +23 -0
- package/generated/plugins/agdf/skills/agdf-clean-implementation-review/SKILL.md +100 -0
- package/generated/plugins/agdf/skills/agdf-clean-implementation-review/help.md +23 -0
- package/generated/plugins/agdf/skills/agdf-code-review/SKILL.md +94 -0
- package/generated/plugins/agdf/skills/agdf-code-review/help.md +23 -0
- package/generated/plugins/agdf/skills/agdf-delivery-closeout/SKILL.md +109 -0
- package/generated/plugins/agdf/skills/agdf-delivery-closeout/help.md +23 -0
- package/generated/plugins/agdf/skills/agdf-gate-check/SKILL.md +92 -0
- package/generated/plugins/agdf/skills/agdf-gate-check/help.md +23 -0
- package/generated/plugins/agdf/skills/agdf-qa-gate/SKILL.md +110 -0
- package/generated/plugins/agdf/skills/agdf-qa-gate/help.md +23 -0
- package/generated/plugins/agdf/skills/agdf-release-or/SKILL.md +124 -0
- package/generated/plugins/agdf/skills/agdf-release-or/help.md +23 -0
- package/generated/plugins/agdf/skills/agdf-task-plan-review/SKILL.md +115 -0
- package/generated/plugins/agdf/skills/agdf-task-plan-review/help.md +23 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -5,6 +5,7 @@ Bootstrap AGDF repository instructions for one repository.
|
|
|
5
5
|
## Usage
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
+
npm create agdf@latest codex
|
|
8
9
|
npm create agdf@latest copilot
|
|
9
10
|
npm create agdf@latest both
|
|
10
11
|
```
|
|
@@ -16,12 +17,15 @@ Optional flags:
|
|
|
16
17
|
|
|
17
18
|
## Targets and existing AGENTS.md
|
|
18
19
|
|
|
19
|
-
- `
|
|
20
|
-
- `
|
|
20
|
+
- `codex` writes a repository-local Codex marketplace under `.agents/plugins/` and a local AGDF plugin copy under `plugins/agdf/`
|
|
21
|
+
- `copilot` writes `AGENTS.md`, Copilot custom instructions under `.github/`, visible repository skills under `.github/skills/`, and AGDF control templates under `.agdf/control/`
|
|
22
|
+
- `both` writes the Codex repository-local marketplace plus the Copilot-facing repository files
|
|
21
23
|
|
|
22
|
-
If the target repository already has an `AGENTS.md`, `create-agdf` preserves it and writes `AGENTS.agdf.md` instead of replacing your existing instructions. Merge the AGDF fragment into your current `AGENTS.md` when you want Copilot to load both instruction sets. Use `--force` only when you explicitly want to overwrite generated files.
|
|
24
|
+
If the target repository already has an `AGENTS.md`, `create-agdf` preserves it and writes `AGENTS.agdf.md` instead of replacing your existing instructions. Merge the AGDF fragment into your current `AGENTS.md` when you want Copilot to load both instruction sets. The generated `.github/copilot-instructions.md` keeps Copilot pointed at `AGENTS.md`, `.github/skills/` and `.agdf/control/` without duplicating the full AGDF rule model. Use `--force` only when you explicitly want to overwrite generated files.
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
Use the `codex` target when AGDF should be available only inside one repository instead of being installed as a personal/global Codex plugin.
|
|
27
|
+
|
|
28
|
+
After `npm create agdf@latest codex`, restart Codex in that repository, open `/plugins`, select `This repository` and install `agdf`.
|
|
25
29
|
|
|
26
30
|
## Control scaffold
|
|
27
31
|
|
package/bin/create-agdf.js
CHANGED
|
@@ -9,8 +9,31 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
9
9
|
const packageRoot = resolve(__dirname, "..");
|
|
10
10
|
const generatedRoot = join(packageRoot, "generated");
|
|
11
11
|
const pluginInstallCommand = "claude plugin add arndtgold/ai-native-governance-delivery-framework";
|
|
12
|
-
const allowedTargets = new Set(["copilot", "both"]);
|
|
12
|
+
const allowedTargets = new Set(["codex", "copilot", "both"]);
|
|
13
13
|
const agdfFragmentPath = "AGENTS.agdf.md";
|
|
14
|
+
const codexPluginFiles = [
|
|
15
|
+
join(".agents", "plugins", "marketplace.json"),
|
|
16
|
+
join("plugins", "agdf", ".codex-plugin", "plugin.json"),
|
|
17
|
+
join("plugins", "agdf", "control", "README.md"),
|
|
18
|
+
join("plugins", "agdf", "control", "templates", "AGDF_RUN.md"),
|
|
19
|
+
join("plugins", "agdf", "control", "templates", "MASTER_BACKLOG.md"),
|
|
20
|
+
join("plugins", "agdf", "control", "templates", "SOT_REGISTRY.md"),
|
|
21
|
+
join("plugins", "agdf", "control", "templates", "CONTEXT_GRAPH.md"),
|
|
22
|
+
join("plugins", "agdf", "control", "templates", "AGENT_QUALITY_CONTRACTS.json"),
|
|
23
|
+
join("plugins", "agdf", "hooks", "hooks.json"),
|
|
24
|
+
join("plugins", "agdf", "hooks", "session-start.sh"),
|
|
25
|
+
join("plugins", "agdf", "meta", "agdf-constitution.md"),
|
|
26
|
+
join("plugins", "agdf", "meta", "agdf-runtime-contract.md"),
|
|
27
|
+
join("plugins", "agdf", "meta", "agdf-tenets.md"),
|
|
28
|
+
join("plugins", "agdf", "skills", "agdf-gate-check", "SKILL.md"),
|
|
29
|
+
join("plugins", "agdf", "skills", "agdf-brownfield-analysis", "SKILL.md"),
|
|
30
|
+
join("plugins", "agdf", "skills", "agdf-task-plan-review", "SKILL.md"),
|
|
31
|
+
join("plugins", "agdf", "skills", "agdf-clean-implementation-review", "SKILL.md"),
|
|
32
|
+
join("plugins", "agdf", "skills", "agdf-code-review", "SKILL.md"),
|
|
33
|
+
join("plugins", "agdf", "skills", "agdf-qa-gate", "SKILL.md"),
|
|
34
|
+
join("plugins", "agdf", "skills", "agdf-release-or", "SKILL.md"),
|
|
35
|
+
join("plugins", "agdf", "skills", "agdf-delivery-closeout", "SKILL.md"),
|
|
36
|
+
];
|
|
14
37
|
const controlFiles = [
|
|
15
38
|
join(".agdf", "control", "README.md"),
|
|
16
39
|
join(".agdf", "control", "templates", "AGDF_RUN.md"),
|
|
@@ -19,6 +42,10 @@ const controlFiles = [
|
|
|
19
42
|
join(".agdf", "control", "templates", "CONTEXT_GRAPH.md"),
|
|
20
43
|
join(".agdf", "control", "templates", "AGENT_QUALITY_CONTRACTS.json"),
|
|
21
44
|
];
|
|
45
|
+
const copilotInstructionFiles = [
|
|
46
|
+
join(".github", "copilot-instructions.md"),
|
|
47
|
+
join(".github", "instructions", "agdf-governance.instructions.md"),
|
|
48
|
+
];
|
|
22
49
|
const copilotSkillFiles = [
|
|
23
50
|
join(".github", "skills", "README.md"),
|
|
24
51
|
join(".github", "skills", "agdf-runtime-contract.md"),
|
|
@@ -36,6 +63,7 @@ function printUsage() {
|
|
|
36
63
|
console.log(`create-agdf
|
|
37
64
|
|
|
38
65
|
Usage:
|
|
66
|
+
npm create agdf@latest codex
|
|
39
67
|
npm create agdf@latest copilot
|
|
40
68
|
npm create agdf@latest both
|
|
41
69
|
|
|
@@ -98,7 +126,7 @@ function parseArgs(argv) {
|
|
|
98
126
|
}
|
|
99
127
|
|
|
100
128
|
if (!target || !allowedTargets.has(target)) {
|
|
101
|
-
console.error("Please choose one target: copilot or both.");
|
|
129
|
+
console.error("Please choose one target: codex, copilot or both.");
|
|
102
130
|
printUsage();
|
|
103
131
|
process.exit(1);
|
|
104
132
|
}
|
|
@@ -126,15 +154,24 @@ function writeGeneratedFile(targetDir, relativePath, content, force) {
|
|
|
126
154
|
}
|
|
127
155
|
|
|
128
156
|
function generatedFilesForTarget(target, targetDir, force) {
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
157
|
+
const files = [];
|
|
158
|
+
|
|
159
|
+
if (target === "codex" || target === "both") {
|
|
160
|
+
for (const codexPath of codexPluginFiles) {
|
|
161
|
+
files.push({
|
|
162
|
+
path: codexPath,
|
|
163
|
+
content: loadAsset(codexPath),
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if (target === "copilot" || target === "both") {
|
|
169
|
+
const agentsTargetPath = existsSync(join(targetDir, "AGENTS.md")) && !force ? agdfFragmentPath : "AGENTS.md";
|
|
170
|
+
files.push({
|
|
132
171
|
path: agentsTargetPath,
|
|
133
172
|
content: loadAsset("AGENTS.md"),
|
|
134
|
-
}
|
|
135
|
-
];
|
|
173
|
+
});
|
|
136
174
|
|
|
137
|
-
if (target === "copilot" || target === "both") {
|
|
138
175
|
for (const controlPath of controlFiles) {
|
|
139
176
|
files.push({
|
|
140
177
|
path: controlPath,
|
|
@@ -142,6 +179,13 @@ function generatedFilesForTarget(target, targetDir, force) {
|
|
|
142
179
|
});
|
|
143
180
|
}
|
|
144
181
|
|
|
182
|
+
for (const instructionPath of copilotInstructionFiles) {
|
|
183
|
+
files.push({
|
|
184
|
+
path: instructionPath,
|
|
185
|
+
content: loadAsset(instructionPath),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
|
|
145
189
|
for (const skillPath of copilotSkillFiles) {
|
|
146
190
|
files.push({
|
|
147
191
|
path: skillPath,
|
|
@@ -167,8 +211,12 @@ function printNextSteps(target, destination, files, wroteAgentsFragment) {
|
|
|
167
211
|
if (wroteAgentsFragment) {
|
|
168
212
|
console.log(`- Existing AGENTS.md detected. Merge ${agdfFragmentPath} into your current AGENTS.md before using Copilot with AGDF.`);
|
|
169
213
|
}
|
|
214
|
+
if (target === "codex" || target === "both") {
|
|
215
|
+
console.log("- Restart Codex in this repository, open /plugins, select This repository and install agdf.");
|
|
216
|
+
console.log("- Start a new Codex thread in this repository and ask: Run an AGDF gate check for this request.");
|
|
217
|
+
}
|
|
170
218
|
if (target === "both") {
|
|
171
|
-
console.log(`-
|
|
219
|
+
console.log(`- Optional global Claude Code install: ${pluginInstallCommand}`);
|
|
172
220
|
}
|
|
173
221
|
if (target === "copilot" || target === "both") {
|
|
174
222
|
console.log("- In GitHub Copilot CLI, run /instructions after the AGENTS.md step is complete to confirm that AGDF instructions and the repository skills are visible.");
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agdf-repo",
|
|
3
|
+
"interface": {
|
|
4
|
+
"displayName": "This repository"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "agdf",
|
|
9
|
+
"source": {
|
|
10
|
+
"source": "local",
|
|
11
|
+
"path": "./plugins/agdf"
|
|
12
|
+
},
|
|
13
|
+
"policy": {
|
|
14
|
+
"installation": "AVAILABLE",
|
|
15
|
+
"authentication": "ON_INSTALL"
|
|
16
|
+
},
|
|
17
|
+
"category": "Productivity"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# AGDF Copilot instructions
|
|
2
|
+
|
|
3
|
+
AGDF is active in this repository.
|
|
4
|
+
|
|
5
|
+
- Treat `AGENTS.md` as the primary repository instruction source.
|
|
6
|
+
- Use `.github/skills/` for AGDF task workflows instead of inventing parallel process rules.
|
|
7
|
+
- Use `.agdf/control/` for durable run state, backlog pointers, source-of-truth ownership, Context Graph knowledge and quality contracts.
|
|
8
|
+
- Before non-trivial implementation or formal delivery work, determine whether the request is a Quick Task or Structured Delivery.
|
|
9
|
+
- If approval, evidence, ownership or the next allowed action is unclear, run the AGDF gate-check workflow before creating later artefacts or code.
|
|
10
|
+
- Do not treat chat history as the source of truth for gate state, approvals, evidence or delivery status.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: "AGENTS.md,AGENTS.agdf.md,.agdf/**,.github/skills/**,.github/copilot-instructions.md,.github/instructions/**"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# AGDF governance artefacts
|
|
6
|
+
|
|
7
|
+
These files are control artefacts, not general documentation.
|
|
8
|
+
|
|
9
|
+
- Keep AGDF rules sourced from `AGENTS.md`, `.github/skills/` and `.github/skills/agdf-runtime-contract.md`.
|
|
10
|
+
- Do not duplicate the full gate model, Quality Contract table or Context Graph relationship language in new files.
|
|
11
|
+
- Keep generated AGDF files small, reviewable and linked to the owning source of truth.
|
|
12
|
+
- Preserve the rule that missing approval, missing evidence or unclear ownership blocks later delivery steps.
|
|
13
|
+
- If changing AGDF bootstrap behaviour, update the generated files, smoke test and affected setup documentation together.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agdf",
|
|
3
|
+
"version": "0.1.5",
|
|
4
|
+
"description": "Codex-first workflow skills for gated, auditable AI-assisted software delivery.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "AI-native Governance & Delivery Framework",
|
|
7
|
+
"url": "https://agdf.iself.eu"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://agdf.iself.eu",
|
|
10
|
+
"repository": "https://github.com/arndtgold/ai-native-governance-delivery-framework",
|
|
11
|
+
"license": "Apache-2.0",
|
|
12
|
+
"keywords": ["agentic", "governance", "delivery", "ai-native", "brownfield"],
|
|
13
|
+
"skills": "./skills/",
|
|
14
|
+
"interface": {
|
|
15
|
+
"displayName": "AI Governance & Delivery Framework",
|
|
16
|
+
"shortDescription": "Codex-first workflow skills for gated, auditable AI-assisted delivery.",
|
|
17
|
+
"longDescription": "AI Governance & Delivery Framework (AGDF) packages reusable Codex-first skills and control templates for gate checks, Brownfield analysis, task-plan review, solution-integrity review, QA decisions, durable run state and auditable delivery closeout.",
|
|
18
|
+
"developerName": "AI-native Governance & Delivery Framework",
|
|
19
|
+
"category": "Productivity",
|
|
20
|
+
"capabilities": ["Read", "Write"],
|
|
21
|
+
"websiteURL": "https://agdf.iself.eu",
|
|
22
|
+
"defaultPrompt": [
|
|
23
|
+
"Run an AGDF gate check for this request.",
|
|
24
|
+
"Create an AGDF control scaffold for this repository.",
|
|
25
|
+
"Use AGDF Brownfield analysis before implementation.",
|
|
26
|
+
"Close this run with an AGDF orchestration report."
|
|
27
|
+
],
|
|
28
|
+
"brandColor": "#14B8A6"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# AGDF Control Scaffold
|
|
2
|
+
|
|
3
|
+
AGDF is primarily a control system for AI-assisted delivery. The skills guide the agent during a run; these files make the run state durable in a repository.
|
|
4
|
+
|
|
5
|
+
Use this scaffold when a target repository should keep AGDF state outside chat history and tool memory.
|
|
6
|
+
|
|
7
|
+
## Files
|
|
8
|
+
|
|
9
|
+
| File | Purpose |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `templates/AGDF_RUN.md` | Current run state: mode, gate, approvals, evidence, risks, next allowed action |
|
|
12
|
+
| `templates/MASTER_BACKLOG.md` | Living backlog pointer: active initiatives and current UR/PRD/SD/TP artefacts |
|
|
13
|
+
| `templates/SOT_REGISTRY.md` | Source-of-truth registry: one primary owner per domain |
|
|
14
|
+
| `templates/CONTEXT_GRAPH.md` | Project memory: durable decisions, Brownfield findings, risks, evidence and exit criteria |
|
|
15
|
+
| `templates/AGENT_QUALITY_CONTRACTS.json` | Machine-readable warning, revise and block contracts for review and QA |
|
|
16
|
+
|
|
17
|
+
## Recommended Target Layout
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
.agdf/
|
|
21
|
+
control/
|
|
22
|
+
AGDF_RUN.md
|
|
23
|
+
MASTER_BACKLOG.md
|
|
24
|
+
SOT_REGISTRY.md
|
|
25
|
+
CONTEXT_GRAPH.md
|
|
26
|
+
AGENT_QUALITY_CONTRACTS.json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Keep these files small and reviewable. They are control artefacts, not a second documentation site.
|
|
30
|
+
|
|
31
|
+
## Operating Rules
|
|
32
|
+
|
|
33
|
+
- `AGDF_RUN.md` is the current run dashboard.
|
|
34
|
+
- `MASTER_BACKLOG.md` points to active delivery work; detailed artefacts live beside the work item.
|
|
35
|
+
- `SOT_REGISTRY.md` decides which document owns which domain.
|
|
36
|
+
- `CONTEXT_GRAPH.md` records durable project knowledge only when it has evidence and an exit criterion.
|
|
37
|
+
- `AGENT_QUALITY_CONTRACTS.json` names reusable block, revise and warning conditions.
|
|
38
|
+
|
|
39
|
+
Do not duplicate full product documentation in this scaffold. Link to the authoritative artefact instead.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# AGDF Run State
|
|
2
|
+
|
|
3
|
+
## Run Meta
|
|
4
|
+
|
|
5
|
+
- run_id:
|
|
6
|
+
- started_at:
|
|
7
|
+
- mode: `quick_task | structured_delivery`
|
|
8
|
+
- current_gate: `none | UR | PRD | SD | TP | CD+Tests | CR | QA | UAT | OR`
|
|
9
|
+
- decision: `pass | revise | block | in_progress`
|
|
10
|
+
- owner:
|
|
11
|
+
|
|
12
|
+
## Objective
|
|
13
|
+
|
|
14
|
+
What outcome is this run trying to make trustworthy?
|
|
15
|
+
|
|
16
|
+
## Current Control State
|
|
17
|
+
|
|
18
|
+
| Question | Answer |
|
|
19
|
+
|---|---|
|
|
20
|
+
| What is known? | |
|
|
21
|
+
| What is approved? | |
|
|
22
|
+
| What is missing? | |
|
|
23
|
+
| What is the next allowed action? | |
|
|
24
|
+
| What is explicitly forbidden right now? | |
|
|
25
|
+
|
|
26
|
+
## Approvals
|
|
27
|
+
|
|
28
|
+
Valid approval format for new runs: `Approval: <GateName>`.
|
|
29
|
+
|
|
30
|
+
| Gate | Status | Evidence |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| UR | `missing | approved | not_applicable` | |
|
|
33
|
+
| PRD | `missing | approved | not_applicable` | |
|
|
34
|
+
| SD | `missing | approved | not_applicable` | |
|
|
35
|
+
| TP | `missing | approved | not_applicable` | |
|
|
36
|
+
| QA | `missing | approved | not_applicable` | |
|
|
37
|
+
| UAT | `missing | approved | not_applicable` | |
|
|
38
|
+
|
|
39
|
+
## Artefacts
|
|
40
|
+
|
|
41
|
+
| Type | Path | Status | Notes |
|
|
42
|
+
|---|---|---|---|
|
|
43
|
+
| UR | | `draft | approved | superseded | not_applicable` | |
|
|
44
|
+
| PRD | | `draft | approved | superseded | not_applicable` | |
|
|
45
|
+
| SD | | `draft | approved | superseded | not_applicable` | |
|
|
46
|
+
| TP | | `draft | approved | superseded | not_applicable` | |
|
|
47
|
+
| Review | | `missing | done | not_applicable` | |
|
|
48
|
+
| QA | | `missing | pass | revise | block | not_applicable` | |
|
|
49
|
+
| OR | | `missing | done | not_applicable` | |
|
|
50
|
+
|
|
51
|
+
## Evidence
|
|
52
|
+
|
|
53
|
+
| Evidence | Source | Covers | Strength |
|
|
54
|
+
|---|---|---|---|
|
|
55
|
+
| | | | `direct | indirect | weak` |
|
|
56
|
+
|
|
57
|
+
## Missing Evidence
|
|
58
|
+
|
|
59
|
+
| Missing evidence | Impact | Required next step |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| | `warn | revise | block` | |
|
|
62
|
+
|
|
63
|
+
## Risks
|
|
64
|
+
|
|
65
|
+
| Risk | Impact | Mitigation or owner |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| | `warn | revise | block` | |
|
|
68
|
+
|
|
69
|
+
## Context Graph Impact
|
|
70
|
+
|
|
71
|
+
- context_graph_impact: `none | link_only | update_existing_node | new_node_required | sot_drift`
|
|
72
|
+
- context_graph_refs:
|
|
73
|
+
- context_graph_required_action: `none | link | update | create | resolve_drift`
|
|
74
|
+
- context_graph_gate_effect: `none | warning | revise | block`
|
|
75
|
+
- context_graph_evidence:
|
|
76
|
+
|
|
77
|
+
## Closeout
|
|
78
|
+
|
|
79
|
+
- delivered:
|
|
80
|
+
- not_delivered:
|
|
81
|
+
- verification_performed:
|
|
82
|
+
- unverified:
|
|
83
|
+
- next_allowed_action:
|
|
84
|
+
- quality_outlook:
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1",
|
|
3
|
+
"updated_at": "",
|
|
4
|
+
"contracts": [
|
|
5
|
+
{
|
|
6
|
+
"code": "AGDF_GATE_BYPASS",
|
|
7
|
+
"category": "agent_process",
|
|
8
|
+
"impact": "block",
|
|
9
|
+
"title": "Gate bypass",
|
|
10
|
+
"description": "A later artefact or implementation was produced without the required exact approval.",
|
|
11
|
+
"applies_to_modes": ["structured_delivery"],
|
|
12
|
+
"gate_effect": ["prd", "sd", "tp", "qa", "uat"],
|
|
13
|
+
"required_evidence": ["approval_log", "artifact_status"],
|
|
14
|
+
"evaluation": "review",
|
|
15
|
+
"owner": "governance"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"code": "AGDF_QA_WITHOUT_TASK_PLAN_REVIEW",
|
|
19
|
+
"category": "agent_process",
|
|
20
|
+
"impact": "block",
|
|
21
|
+
"title": "QA without task-plan review",
|
|
22
|
+
"description": "QA is evaluated for Structured Delivery without prior task-plan coverage evidence.",
|
|
23
|
+
"applies_to_modes": ["structured_delivery"],
|
|
24
|
+
"gate_effect": ["qa"],
|
|
25
|
+
"required_evidence": ["task_plan_review"],
|
|
26
|
+
"evaluation": "review",
|
|
27
|
+
"owner": "governance"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"code": "AGDF_PARALLEL_SOT",
|
|
31
|
+
"category": "architecture_integrity",
|
|
32
|
+
"impact": "block",
|
|
33
|
+
"title": "Parallel source of truth",
|
|
34
|
+
"description": "A second source of truth was introduced for product intent, runtime behavior, visible state, policy or persistent domain data.",
|
|
35
|
+
"applies_to_modes": ["structured_delivery", "quick_task"],
|
|
36
|
+
"gate_effect": ["prd", "sd", "tp", "qa"],
|
|
37
|
+
"required_evidence": ["brownfield_analysis", "source_of_truth_reference"],
|
|
38
|
+
"evaluation": "review",
|
|
39
|
+
"owner": "governance"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"code": "AGDF_DOC_IMPACT_UNCHECKED",
|
|
43
|
+
"category": "doc_spec_drift",
|
|
44
|
+
"impact": "revise",
|
|
45
|
+
"title": "Documentation or SoT impact unchecked",
|
|
46
|
+
"description": "A behavior, architecture, API, UX, policy or runtime change was completed without checking the affected source-of-truth artefacts.",
|
|
47
|
+
"applies_to_modes": ["structured_delivery", "quick_task"],
|
|
48
|
+
"gate_effect": ["qa"],
|
|
49
|
+
"required_evidence": ["sot_impact_review"],
|
|
50
|
+
"evaluation": "review",
|
|
51
|
+
"owner": "docs"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"code": "AGDF_TEST_SCOPE_UNCLEAR",
|
|
55
|
+
"category": "tp_coverage",
|
|
56
|
+
"impact": "revise",
|
|
57
|
+
"title": "Test scope unclear",
|
|
58
|
+
"description": "Tests were cited but are not traceable to affected acceptance criteria, tasks or risk paths.",
|
|
59
|
+
"applies_to_modes": ["structured_delivery", "quick_task"],
|
|
60
|
+
"gate_effect": ["qa"],
|
|
61
|
+
"required_evidence": ["test_result", "acceptance_mapping"],
|
|
62
|
+
"evaluation": "review",
|
|
63
|
+
"owner": "test"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"code": "AGDF_QUICK_TASK_EVIDENCE_LIGHT",
|
|
67
|
+
"category": "agent_process",
|
|
68
|
+
"impact": "warn",
|
|
69
|
+
"title": "Quick task evidence light",
|
|
70
|
+
"description": "A Quick Task has minimal evidence that may be acceptable for scope and risk but must remain visible.",
|
|
71
|
+
"applies_to_modes": ["quick_task"],
|
|
72
|
+
"gate_effect": ["none"],
|
|
73
|
+
"required_evidence": ["closeout_note"],
|
|
74
|
+
"evaluation": "review",
|
|
75
|
+
"owner": "governance"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# AGDF Context Graph
|
|
2
|
+
|
|
3
|
+
This file keeps durable delivery knowledge discoverable. It is not a second PRD, SD or task plan.
|
|
4
|
+
|
|
5
|
+
## Admission Rules
|
|
6
|
+
|
|
7
|
+
A node belongs here only when it has:
|
|
8
|
+
|
|
9
|
+
- concrete evidence
|
|
10
|
+
- affected artefacts or paths
|
|
11
|
+
- a visible risk, decision, invariant or reusable Brownfield finding
|
|
12
|
+
- a next clean step
|
|
13
|
+
- an exit criterion
|
|
14
|
+
|
|
15
|
+
Do not add nodes for general opinions, one-off chat summaries or local observations without future decision value.
|
|
16
|
+
|
|
17
|
+
## Node Index
|
|
18
|
+
|
|
19
|
+
| ID | Type | Status | Title | Evidence | Next Step |
|
|
20
|
+
|---|---|---|---|---|---|
|
|
21
|
+
| CG-001 | `decision | brownfield_finding | quality_node | sot_invariant | cleanup_obligation | integration_surface` | `draft | active | resolved | superseded | rejected` | | | |
|
|
22
|
+
|
|
23
|
+
## Relationship Language
|
|
24
|
+
|
|
25
|
+
| Relationship | Meaning |
|
|
26
|
+
|---|---|
|
|
27
|
+
| `derived_from` | An artefact was derived from another artefact |
|
|
28
|
+
| `satisfies` | A task or implementation satisfies a requirement or acceptance criterion |
|
|
29
|
+
| `tests` | A test checks a criterion or risk |
|
|
30
|
+
| `mitigates` | Evidence reduces a risk |
|
|
31
|
+
| `depends_on` | A decision or artefact depends on another |
|
|
32
|
+
| `changes` | A requirement changes a component, artefact or behavior |
|
|
33
|
+
| `supersedes` | A newer artefact replaces an older basis |
|
|
34
|
+
| `blocks` | A defect or risk blocks a gate |
|
|
35
|
+
| `approved_by` | An artefact was approved by a gate |
|
|
36
|
+
| `evidenced_by` | A claim is backed by evidence |
|
|
37
|
+
|
|
38
|
+
## Nodes
|
|
39
|
+
|
|
40
|
+
### CG-001 Example
|
|
41
|
+
|
|
42
|
+
- type:
|
|
43
|
+
- status:
|
|
44
|
+
- title:
|
|
45
|
+
- introduced_by:
|
|
46
|
+
- affects:
|
|
47
|
+
- evidence:
|
|
48
|
+
- risk_or_value:
|
|
49
|
+
- next_clean_step:
|
|
50
|
+
- exit_criterion:
|
|
51
|
+
- links:
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# AGDF Master Backlog
|
|
2
|
+
|
|
3
|
+
This file is the living control pointer for active AGDF delivery work. Detailed UR, PRD, SD, TP, QA and OR artefacts should live in stable paths and be linked from here.
|
|
4
|
+
|
|
5
|
+
## Rules
|
|
6
|
+
|
|
7
|
+
1. Keep only steering-relevant work in `Active Backlog`.
|
|
8
|
+
2. Every active item has exactly one current spec pointer.
|
|
9
|
+
3. Historical artefacts remain linkable but do not override the current pointer.
|
|
10
|
+
4. If an item is superseded, mark the replacement.
|
|
11
|
+
5. If active work grows beyond roughly ten items, triage the backlog.
|
|
12
|
+
|
|
13
|
+
## Active Backlog
|
|
14
|
+
|
|
15
|
+
| Prio | Key | Title | Status | Current Spec | Notes |
|
|
16
|
+
|---:|---|---|---|---|---|
|
|
17
|
+
| P1 | | | `in_progress | blocked` | | |
|
|
18
|
+
|
|
19
|
+
## Planned / Parking Lot
|
|
20
|
+
|
|
21
|
+
| Prio | Key | Title | Status | Current Spec | Notes |
|
|
22
|
+
|---:|---|---|---|---|---|
|
|
23
|
+
| P2 | | | `planned | review_needed` | | |
|
|
24
|
+
|
|
25
|
+
## Completed / Superseded Pointers
|
|
26
|
+
|
|
27
|
+
| Key | Title | Final Status | Current or Historical Link | Notes |
|
|
28
|
+
|---|---|---|---|---|
|
|
29
|
+
| | | `done | superseded | abandoned` | | |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# AGDF Source-of-Truth Registry
|
|
2
|
+
|
|
3
|
+
Use this file to prevent parallel sources of truth. Each domain should have one primary owner.
|
|
4
|
+
|
|
5
|
+
## Primary Sources of Truth
|
|
6
|
+
|
|
7
|
+
| Domain | SoT Document | Status | Owner | Last Verified |
|
|
8
|
+
|---|---|---|---|---|
|
|
9
|
+
| Product intent | | `active | draft | superseded` | | |
|
|
10
|
+
| Architecture | | `active | draft | superseded` | | |
|
|
11
|
+
| Runtime contracts | | `active | draft | superseded` | | |
|
|
12
|
+
| UX / user flows | | `active | draft | superseded` | | |
|
|
13
|
+
| Operations / release | | `active | draft | superseded` | | |
|
|
14
|
+
|
|
15
|
+
## Secondary References
|
|
16
|
+
|
|
17
|
+
Secondary references may support decisions, but they do not override the primary SoT.
|
|
18
|
+
|
|
19
|
+
| Reference | Purpose | Limit |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| | | |
|
|
22
|
+
|
|
23
|
+
## Conflict Rule
|
|
24
|
+
|
|
25
|
+
When a secondary document, generated output, old snapshot or chat summary conflicts with the primary SoT, the primary SoT wins until a new approved artefact changes it.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"SessionStart": [
|
|
4
|
+
{
|
|
5
|
+
"hooks": [
|
|
6
|
+
{
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "bash -lc 'for hook in \"${CODEX_HOME:-$HOME/.codex}\"/plugins/cache/*/agdf/*/hooks/session-start.sh \"$PWD/plugins/agdf/hooks/session-start.sh\" \"$(dirname \"$0\")/session-start.sh\"; do [ -f \"$hook\" ] && exec bash \"$hook\"; done; exit 0'",
|
|
9
|
+
"statusMessage": "Loading AGDF..."
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# AGDF Session Start Hook
|
|
3
|
+
# Loads the AGDF constitution into the agent session.
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
CONSTITUTION="${SCRIPT_DIR}/../meta/agdf-constitution.md"
|
|
7
|
+
|
|
8
|
+
if [ -f "$CONSTITUTION" ]; then
|
|
9
|
+
cat "$CONSTITUTION"
|
|
10
|
+
fi
|