@afokapu/atdd-bun 0.10.44 → 0.10.45
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.
|
@@ -8,12 +8,12 @@ statement: >-
|
|
|
8
8
|
terms:
|
|
9
9
|
- term_id: presets
|
|
10
10
|
text: >-
|
|
11
|
-
Planning: planner (plus docs when the repository keeps documentation under docs/). Building, once RED starts: add coder, tester, traceability, security; add htmx and design for a web UI, and interlocking once trains have a runtime. Instrumenting: add telemetry. Coordinating durable multi-agent work: after
|
|
11
|
+
Planning: planner (plus docs when the repository keeps documentation under docs/). Building, once RED starts: add coder, tester, traceability, security; add htmx and design for a web UI, and interlocking once trains have a runtime. Instrumenting: add telemetry. Coordinating durable multi-agent work: after the Flow companion is installed locally, add flow.
|
|
12
12
|
values:
|
|
13
13
|
planning: [planner]
|
|
14
14
|
building: [coder, tester, traceability, security]
|
|
15
15
|
instrumenting: [telemetry]
|
|
16
|
-
coordinating: [
|
|
16
|
+
coordinating: [flow]
|
|
17
17
|
- term_id: profile_registries
|
|
18
18
|
text: >-
|
|
19
19
|
A deterministic, profile-scoped projection of the detector manifests, convention paths, and
|
|
@@ -33,7 +33,7 @@ terms:
|
|
|
33
33
|
tester: conventions/_profiles/tester.yaml
|
|
34
34
|
topology: conventions/_profiles/topology.yaml
|
|
35
35
|
traceability: conventions/_profiles/traceability.yaml
|
|
36
|
-
|
|
36
|
+
flow: conventions/_profiles/flow.yaml
|
|
37
37
|
content:
|
|
38
38
|
summary: >-
|
|
39
39
|
A goal is easier to name than a profile. The presets map what the user is doing to the profiles that judge it, in the order the work creates what they check.
|
|
@@ -41,7 +41,7 @@ content:
|
|
|
41
41
|
planner alone keeps the plan consistent: it parses, validates and resolves the plan with nothing else present. traceability judges the links from the plan to tests and source, so before tests exist it can only report that every acceptance is untested; it joins with building, and from then on it also catches a plan change that orphans a test.
|
|
42
42
|
security joins with the first code, not at release: a secret committed during GREEN stays in history.
|
|
43
43
|
coder already bundles the architecture, metrics, runtime, design and responsive detectors, so those need no later preset.
|
|
44
|
-
|
|
44
|
+
flow is optional: it governs durable seats, tasks and threads only when the repository has the locally installed Flow companion. It is deliberately not selected by a default profile list. A legacy explicit delivery or workflow profile migrates by replacing it with flow in the same profile list; that one-for-one replacement is not a policy loosening.
|
|
45
45
|
fix_hint: |
|
|
46
46
|
At a stage whose preset is missing, ask what the user wants to do (planning, building, instrumenting, or coordinating), recommend that preset and say it can be adopted step by step, then write the chosen list to profiles: in atdd-bun.yaml.
|
|
47
47
|
exceptions:
|
package/integrity.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.10.
|
|
2
|
+
"version": "0.10.45",
|
|
3
3
|
"files": {
|
|
4
4
|
"HOOK_AUDIT.md": "5329d840db37671b1918f688ead26865473b87db73dbc75f7c8b2a8bbe8d6d43",
|
|
5
5
|
"PLANNER_PORT.md": "fb5935bac8b7ac18994de21e43ace3a5ef8cd55f85b0e3349fca261280054f11",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"conventions/_profiles/coder.yaml": "3fb191556a64c9ebcf249516afa189afca24da9b22fd40b2fc66908196cdfb78",
|
|
10
10
|
"conventions/_profiles/design.yaml": "25a02a67152d49728ad3517f6510da7285116fa69c56cbda55613a7cfcfd3b89",
|
|
11
11
|
"conventions/_profiles/docs.yaml": "05485c3b32f1757e77c42e331eec1db651cb52ef57fc4e8607bb2f73b056cbb3",
|
|
12
|
+
"conventions/_profiles/flow.yaml": "1e3d3f29150f6b803fd5aa7cd4a7afc8b88eae4a1a563117318ca89ab07d4211",
|
|
12
13
|
"conventions/_profiles/htmx.yaml": "38fc8b3e1a53429e16977ed63e83e751b203deffe9b338ea171050fb64641559",
|
|
13
14
|
"conventions/_profiles/interlocking.yaml": "46a2a4fb2eb537941c991ef4178d009a30d14f84279e525ca0d0887d3239047d",
|
|
14
15
|
"conventions/_profiles/metrics.yaml": "82081754271e0cb08a1245ad658578907c8e0e455912aa954502334a82d7b4d3",
|
|
@@ -19,7 +20,6 @@
|
|
|
19
20
|
"conventions/_profiles/tester.yaml": "348183eee5298cbb843031f6c41c3f9d0a725b11b3c66e154b47c9b340a72666",
|
|
20
21
|
"conventions/_profiles/topology.yaml": "08df698c2e5419e8f7faa83f5f15c3ba9c085cc2ce72579624eb24962a6b8612",
|
|
21
22
|
"conventions/_profiles/traceability.yaml": "adce93fb8392307685a01bec85e60534c59a9f4f0e4f8ea4767d79d22cf80878",
|
|
22
|
-
"conventions/_profiles/workflow.yaml": "4c31d46ebb303fdf44500fc806b0ade23f36328c9b6f9d54655ab6931f836e58",
|
|
23
23
|
"conventions/atdd-bun.planner/atdd-bun.planner.acceptance-identity.convention.yaml": "81c5c773d5ee15e8d99a2c237aa9846b110b2533df45ebf407d0e3ec6ed3dd03",
|
|
24
24
|
"conventions/atdd-bun.planner/atdd-bun.planner.identity-required.convention.yaml": "e96d7c1455d0c221072d82e7f2b55da1c4f9ceb17718eb6ed96affdeef37675b",
|
|
25
25
|
"conventions/atdd-bun.planner/atdd-bun.planner.identity-unique.convention.yaml": "409ba1d035ed46bc45f3627b62fd3a6a5967d984cc4c071c41be3f3fa887c6d6",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"conventions/atdd-bun.planner/atdd-bun.planner.reference-resolves.convention.yaml": "b96927d269692c29c02fee38ecbeb999480791f8dc7486c4072a9ff30183d7d6",
|
|
29
29
|
"conventions/atdd-bun.planner/atdd-bun.planner.schema.convention.yaml": "16d0a26451758b759e6ca1f5b4f38ae1feff129688306ffcc2f70f6d3974b591",
|
|
30
30
|
"conventions/atdd-bun.planner/atdd-bun.planner.train-wagon-resolves.convention.yaml": "6410e248351e701dcba38c671c07c4d8f6d67927984ed4d18e567abd1eb1f3f0",
|
|
31
|
-
"conventions/atdd-bun.profiles/atdd-bun.profiles.presets.convention.yaml": "
|
|
31
|
+
"conventions/atdd-bun.profiles/atdd-bun.profiles.presets.convention.yaml": "acba19cfc0712705432f755fc89823dfe090f5475d11386d60c747e32ed769e0",
|
|
32
32
|
"conventions/atdd-bun.review/atdd-bun.review.behavioral-reconciliation.convention.yaml": "e87958d918c7bec3f1428cfeff4862c324e383ba622a857d5b2def1628aa12af",
|
|
33
33
|
"conventions/atdd-bun.topology/atdd-bun.topology.e2e-location.convention.yaml": "3a3b991bc851b86d597636200f5cb10a0defda3920348860cdca28955ab91f4c",
|
|
34
34
|
"conventions/atdd-bun.topology/atdd-bun.topology.feature-source-coverage.convention.yaml": "2b64093f1e7f1fe0e2edcadf12e560fa80cecec19536abaa5bf09af362c6694e",
|
|
@@ -1197,10 +1197,10 @@
|
|
|
1197
1197
|
"src/ci.ts": "67e54d2cbfc44a9e42837d5e750af526d6255c539d3c452a4d5fca3226c0d9ac",
|
|
1198
1198
|
"src/cli.ts": "cbc50f1e7fc7d0935f78230b7da6e232ed7ee6f04828e015c599fb6f6edcbfa2",
|
|
1199
1199
|
"src/docs-capability.ts": "bdeeb414649049b1cd4fa8008cada3a576318be51c43bec91bfa46a8e250c270",
|
|
1200
|
-
"src/enforce.ts": "
|
|
1200
|
+
"src/enforce.ts": "dd30e41b83e628f72eb3cbf96a374a7cecf47666813cf15e85b895ba98bb4f14",
|
|
1201
1201
|
"src/hooks.ts": "0b4ca8c857e637bbd144e737e78eda924e3cba7b038c0abe5e6916d200d73068",
|
|
1202
1202
|
"src/index.ts": "4081f8b08d1d3ee9e15a9964143e53d9cfb94a5616ab3e58a180d24cc16dc381",
|
|
1203
|
-
"src/integrity.ts": "
|
|
1203
|
+
"src/integrity.ts": "f5ad22759eec675454df82cdcf791b1f081951f08ca5084ebdcb8cd82aa1ecef",
|
|
1204
1204
|
"src/journey-docs.ts": "994d229376244c84212cff951032823068a76565dd2fd427b9d44e341bd14853",
|
|
1205
1205
|
"src/planner-kernel.ts": "5d3f5305fb59becb2cc97d8a03aca6b104f385805d91cc0410856e289dd6fbb1",
|
|
1206
1206
|
"src/planner-schema-validator.ts": "ce529c0936171075e93c7539b3655fe895a98dd2973ebda5775958e6ebc316d9",
|
package/package.json
CHANGED
package/src/enforce.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { tmpdir } from "node:os";
|
|
|
4
4
|
import { join, resolve } from "node:path";
|
|
5
5
|
import { topologyFor } from "./topology";
|
|
6
6
|
|
|
7
|
-
export type Profile = "traceability" | "topology" | "docs" | "planner" | "telemetry" | "coder" | "tester" | "security" | "architecture" | "metrics" | "runtime" | "interlocking" | "htmx" | "design" | "
|
|
7
|
+
export type Profile = "traceability" | "topology" | "docs" | "planner" | "telemetry" | "coder" | "tester" | "security" | "architecture" | "metrics" | "runtime" | "interlocking" | "htmx" | "design" | "flow" | "all";
|
|
8
8
|
export type ConcreteProfile = Exclude<Profile, "all">;
|
|
9
9
|
|
|
10
10
|
export type Violation = {
|
|
@@ -38,15 +38,15 @@ export const profileImplementations: Record<ConcreteProfile, string[]> = {
|
|
|
38
38
|
interlocking: ["bun_interlocking_binding", "bun_interlocking_coverage", "bun_interlocking_infrastructure"],
|
|
39
39
|
htmx: ["htmx_hypermedia_detector", "htmx_tester_detector", "htmx_e2e_detector"],
|
|
40
40
|
design: ["bun_design_system_detector", "bun_responsive_detector"],
|
|
41
|
-
// Operational policies only:
|
|
42
|
-
|
|
41
|
+
// Operational policies only: the Flow companion supplies lifecycle orchestration; ATDD Bun supplies delivery review semantics.
|
|
42
|
+
flow: [],
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
/** Additional policy conventions a profile loads, whether local or contributed by an installed companion package. */
|
|
46
46
|
export const profileConventions: Record<ConcreteProfile, Array<{ rule_id: string; path: string }>> = {
|
|
47
47
|
traceability: [], topology: [], docs: [], planner: [], telemetry: [], coder: [{ rule_id: "coder.bun.phase-discipline", path: "conventions/coder.bun/coder.bun.phase-discipline.convention.yaml" }], tester: [], security: [],
|
|
48
48
|
architecture: [], metrics: [], runtime: [], interlocking: [], htmx: [], design: [],
|
|
49
|
-
|
|
49
|
+
flow: [
|
|
50
50
|
{ rule_id: "atdd-bun.review.behavioral-reconciliation", path: "conventions/atdd-bun.review/atdd-bun.review.behavioral-reconciliation.convention.yaml" },
|
|
51
51
|
{ rule_id: "atdd-workflow.workflow.lifecycle", path: "../atdd-workflow/conventions/atdd-workflow.workflow/atdd-workflow.workflow.lifecycle.convention.yaml" },
|
|
52
52
|
],
|
|
@@ -55,7 +55,7 @@ export const profileConventions: Record<ConcreteProfile, Array<{ rule_id: string
|
|
|
55
55
|
/** Every profile but `all`. */
|
|
56
56
|
export const concreteProfiles = Object.keys(profileImplementations) as ConcreteProfile[];
|
|
57
57
|
/** Profiles a repository adopts only when it explicitly uses the optional companion package. */
|
|
58
|
-
export const optionalProfiles: ConcreteProfile[] = ["
|
|
58
|
+
export const optionalProfiles: ConcreteProfile[] = ["flow"];
|
|
59
59
|
/** The safe default set for repositories that have not opted into an optional companion profile. */
|
|
60
60
|
export const defaultProfiles = concreteProfiles.filter(profile => !optionalProfiles.includes(profile));
|
|
61
61
|
/** Profile names accepted by the CLI and public integrations. */
|
package/src/integrity.ts
CHANGED
|
@@ -156,10 +156,10 @@ export function loosenedPolicy(base: Partial<HookPolicy> & { profiles?: unknown
|
|
|
156
156
|
// (explicit → implicit → narrower would otherwise be a two-step bypass) is loosening a human approves.
|
|
157
157
|
const before = explicitProfiles(base), after = explicitProfiles(current);
|
|
158
158
|
if (before && !after) out.push(`profiles becomes implicit: the explicit list [${before.join(", ")}] was removed`);
|
|
159
|
-
// delivery was retired in favour of
|
|
159
|
+
// delivery was retired in favour of Flow. These are one-way profile migrations,
|
|
160
160
|
// not a general escape hatch for removing profiles: its replacement must be explicit in the same
|
|
161
161
|
// policy change, and every other removed profile remains a loosening.
|
|
162
|
-
const dropped = before && after ? before.filter(name => !after.includes(name) && !(name === "delivery" && after.includes("
|
|
162
|
+
const dropped = before && after ? before.filter(name => !after.includes(name) && !((name === "delivery" || name === "workflow") && after.includes("flow"))) : [];
|
|
163
163
|
if (dropped.length) out.push(`profiles drops ${dropped.join(", ")}`);
|
|
164
164
|
return out;
|
|
165
165
|
}
|