@cratylus/canon 0.17.0 → 0.18.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/README.md +51 -26
- package/dist/agents/nico.js +1 -1
- package/dist/agents/nico.js.map +1 -1
- package/dist/agents/reviewer.d.ts +1 -0
- package/dist/agents/reviewer.js +5 -0
- package/dist/agents/reviewer.js.map +1 -0
- package/dist/contracts.js +81 -82
- package/dist/contracts.js.map +1 -1
- package/dist/dimensions/action-scope/integrate.js +1 -1
- package/dist/dimensions/action-scope/integrate.js.map +1 -1
- package/dist/dimensions/assignment/concepts.js +1 -1
- package/dist/dimensions/assignment/concepts.js.map +1 -1
- package/dist/dimensions/assignment/{judgment-brief.d.ts → review-request.d.ts} +1 -1
- package/dist/dimensions/assignment/review-request.js +2 -0
- package/dist/dimensions/assignment/review-request.js.map +1 -0
- package/dist/dimensions/assignment/{cut-brief.d.ts → story.d.ts} +1 -1
- package/dist/dimensions/assignment/story.js +2 -0
- package/dist/dimensions/assignment/story.js.map +1 -0
- package/dist/dimensions/assignment/{work-package.d.ts → task.d.ts} +1 -1
- package/dist/dimensions/assignment/task.js +2 -0
- package/dist/dimensions/assignment/task.js.map +1 -0
- package/dist/dimensions/deliverable/{done-or-failing-case.d.ts → change.d.ts} +1 -1
- package/dist/dimensions/deliverable/change.js +2 -0
- package/dist/dimensions/deliverable/change.js.map +1 -0
- package/dist/dimensions/deliverable/{verdict-per-concept.d.ts → outcome.d.ts} +1 -1
- package/dist/dimensions/deliverable/outcome.js +2 -0
- package/dist/dimensions/deliverable/outcome.js.map +1 -0
- package/dist/dimensions/deliverable/read-back.d.ts +2 -0
- package/dist/dimensions/deliverable/read-back.js +2 -0
- package/dist/dimensions/deliverable/read-back.js.map +1 -0
- package/dist/dimensions/deliverable/review.d.ts +2 -0
- package/dist/dimensions/deliverable/review.js +2 -0
- package/dist/dimensions/deliverable/review.js.map +1 -0
- package/dist/dimensions/expertise/evaluation-design.js +1 -1
- package/dist/dimensions/expertise/evaluation-design.js.map +1 -1
- package/dist/dimensions/expertise/software-delivery.js +1 -1
- package/dist/dimensions/expertise/software-delivery.js.map +1 -1
- package/dist/dimensions/guardrails/fixed-acceptance-criteria.js +1 -1
- package/dist/dimensions/guardrails/fixed-acceptance-criteria.js.map +1 -1
- package/dist/dimensions/guardrails/never-repairs.js +1 -1
- package/dist/dimensions/guardrails/never-repairs.js.map +1 -1
- package/dist/dimensions/objective/correctness.js +1 -1
- package/dist/dimensions/objective/correctness.js.map +1 -1
- package/dist/dimensions/objective/delivery.js +1 -1
- package/dist/dimensions/objective/delivery.js.map +1 -1
- package/dist/dimensions/objective/{verdict-accuracy.d.ts → review-accuracy.d.ts} +1 -1
- package/dist/dimensions/objective/review-accuracy.js +2 -0
- package/dist/dimensions/objective/review-accuracy.js.map +1 -0
- package/dist/dimensions/perception-scope/held-out-examples.js +1 -1
- package/dist/dimensions/perception-scope/held-out-examples.js.map +1 -1
- package/dist/dimensions/perception-scope/{own-work-package.d.ts → own-task.d.ts} +1 -1
- package/dist/dimensions/perception-scope/own-task.js +2 -0
- package/dist/dimensions/perception-scope/own-task.js.map +1 -0
- package/dist/dimensions/procedure/{freeze.d.ts → code-review.d.ts} +1 -1
- package/dist/dimensions/procedure/code-review.js +2 -0
- package/dist/dimensions/procedure/code-review.js.map +1 -0
- package/dist/dimensions/procedure/orchestrator-workers.d.ts +2 -0
- package/dist/dimensions/procedure/orchestrator-workers.js +2 -0
- package/dist/dimensions/procedure/orchestrator-workers.js.map +1 -0
- package/dist/dimensions/procedure/reconstitution.js +1 -1
- package/dist/dimensions/procedure/reconstitution.js.map +1 -1
- package/dist/dimensions/procedure/{judgment.d.ts → ship-show-ask.d.ts} +1 -1
- package/dist/dimensions/procedure/ship-show-ask.js +2 -0
- package/dist/dimensions/procedure/ship-show-ask.js.map +1 -0
- package/dist/dimensions/procedure/{build.d.ts → test-first.d.ts} +1 -1
- package/dist/dimensions/procedure/test-first.js +2 -0
- package/dist/dimensions/procedure/test-first.js.map +1 -0
- package/dist/dimensions/role/architect.js +1 -1
- package/dist/dimensions/role/architect.js.map +1 -1
- package/dist/dimensions/role/builder.js +1 -1
- package/dist/dimensions/role/builder.js.map +1 -1
- package/dist/dimensions/role/check-writer.js +1 -1
- package/dist/dimensions/role/check-writer.js.map +1 -1
- package/dist/dimensions/role/illustrator.js +1 -1
- package/dist/dimensions/role/illustrator.js.map +1 -1
- package/dist/dimensions/role/lead.js +1 -1
- package/dist/dimensions/role/lead.js.map +1 -1
- package/dist/dimensions/role/{assayer.d.ts → reviewer.d.ts} +1 -1
- package/dist/dimensions/role/reviewer.js +2 -0
- package/dist/dimensions/role/reviewer.js.map +1 -0
- package/dist/genus/persona.d.ts +1 -1
- package/dist/genus/persona.js +3 -1
- package/dist/genus/persona.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +9 -8
- package/dist/manifest.js +15 -6
- package/dist/manifest.js.map +1 -1
- package/dist/practices.js +3 -3
- package/dist/practices.js.map +1 -1
- package/dist/roles/architect.js +64 -16
- package/dist/roles/architect.js.map +1 -1
- package/dist/roles/builder.js +12 -14
- package/dist/roles/builder.js.map +1 -1
- package/dist/roles/check-writer.js +6 -7
- package/dist/roles/check-writer.js.map +1 -1
- package/dist/roles/illustrator.js +4 -4
- package/dist/roles/illustrator.js.map +1 -1
- package/dist/roles/lead.js +44 -14
- package/dist/roles/lead.js.map +1 -1
- package/dist/roles/{assayer.d.ts → reviewer.d.ts} +1 -1
- package/dist/roles/{assayer.js → reviewer.js} +39 -24
- package/dist/roles/reviewer.js.map +1 -0
- package/dist/rules/repo-preamble.js +6 -6
- package/dist/rules/repo-preamble.js.map +1 -1
- package/dist/skills/signify/skill.js +2 -2
- package/package.json +4 -4
- package/dist/agents/assayer.d.ts +0 -1
- package/dist/agents/assayer.js +0 -5
- package/dist/agents/assayer.js.map +0 -1
- package/dist/dimensions/assignment/cut-brief.js +0 -2
- package/dist/dimensions/assignment/cut-brief.js.map +0 -1
- package/dist/dimensions/assignment/judgment-brief.js +0 -2
- package/dist/dimensions/assignment/judgment-brief.js.map +0 -1
- package/dist/dimensions/assignment/work-package.js +0 -2
- package/dist/dimensions/assignment/work-package.js.map +0 -1
- package/dist/dimensions/deliverable/decisions-with-reasons.d.ts +0 -2
- package/dist/dimensions/deliverable/decisions-with-reasons.js +0 -2
- package/dist/dimensions/deliverable/decisions-with-reasons.js.map +0 -1
- package/dist/dimensions/deliverable/done-or-failing-case.js +0 -2
- package/dist/dimensions/deliverable/done-or-failing-case.js.map +0 -1
- package/dist/dimensions/deliverable/outcome-with-efficiency.d.ts +0 -2
- package/dist/dimensions/deliverable/outcome-with-efficiency.js +0 -2
- package/dist/dimensions/deliverable/outcome-with-efficiency.js.map +0 -1
- package/dist/dimensions/deliverable/verdict-per-concept.js +0 -2
- package/dist/dimensions/deliverable/verdict-per-concept.js.map +0 -1
- package/dist/dimensions/objective/verdict-accuracy.js +0 -2
- package/dist/dimensions/objective/verdict-accuracy.js.map +0 -1
- package/dist/dimensions/perception-scope/own-work-package.js +0 -2
- package/dist/dimensions/perception-scope/own-work-package.js.map +0 -1
- package/dist/dimensions/procedure/build.js +0 -2
- package/dist/dimensions/procedure/build.js.map +0 -1
- package/dist/dimensions/procedure/freeze.js +0 -2
- package/dist/dimensions/procedure/freeze.js.map +0 -1
- package/dist/dimensions/procedure/judgment.js +0 -2
- package/dist/dimensions/procedure/judgment.js.map +0 -1
- package/dist/dimensions/procedure/whole-check.d.ts +0 -2
- package/dist/dimensions/procedure/whole-check.js +0 -2
- package/dist/dimensions/procedure/whole-check.js.map +0 -1
- package/dist/dimensions/role/assayer.js +0 -2
- package/dist/dimensions/role/assayer.js.map +0 -1
- package/dist/roles/assayer.js.map +0 -1
package/README.md
CHANGED
|
@@ -58,14 +58,33 @@ are [`@cratylus/schema`](../schema/README.md)'s.
|
|
|
58
58
|
|
|
59
59
|
## The agents
|
|
60
60
|
|
|
61
|
-
The plugin carries nine agents, all in the practice `
|
|
62
|
-
`
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
The plugin carries nine agents, all in the practice `intent-based-delegation`, which delivers
|
|
62
|
+
intent-based delegation. `architect`, `lead`, `builder` and `reviewer` are the generic holders of
|
|
63
|
+
their roles, with `illustrator` and `check-writer` as specialists called in when a story's risk
|
|
64
|
+
warrants them. Each role is defined by what it receives and what it hands over, never by steps:
|
|
65
|
+
|
|
66
|
+
- **architect** — the operator's principal architect, owning the conceptual design: receives intent,
|
|
67
|
+
hands over stories, answers to meaning questions and read-backs; decides meaning only.
|
|
68
|
+
- **lead** — owns a story's realization, or a task with no story: orchestrates its tasks to builders
|
|
69
|
+
(orchestrator-workers) and their changes to review as its story's risk calls for (Ship, Show or
|
|
70
|
+
Ask), joins each change by the project's own integration once every check passes and any review
|
|
71
|
+
due before it joins approves it, and hands over the outcome.
|
|
72
|
+
- **builder** — receives one task and hands over one change that passes every check.
|
|
73
|
+
- **reviewer** — reviews one change it did not write, before or after it joins as its story's risk
|
|
74
|
+
calls for, against the change and, where they apply, its story's acceptance criteria and
|
|
75
|
+
examples, held-out ones included; hands over one review and never builds or repairs the work.
|
|
76
|
+
- **illustrator** — writes a story's examples cold from its concepts alone, flagging unclear terms.
|
|
77
|
+
- **check-writer** — writes the checks binding a story's examples, each seen failing before the build.
|
|
78
|
+
|
|
79
|
+
The reviewer, the illustrator and the check-writer run on another model family than the builders
|
|
80
|
+
where one is available. A role cell (`src/roles/<role>.ts`) states a value for every factor, an
|
|
81
|
+
explicitly empty set counting as one, and `agents/<role>.ts` is `holder(<role>Role)`: named for the
|
|
82
|
+
role, carrying nothing beyond it and no mark. `holder` refuses a cell missing a factor, a scalar
|
|
83
|
+
without exactly one value, a slot not filled exactly once, and empty guardrails.
|
|
84
|
+
|
|
85
|
+
kino, nico and mav are personas over the architect role, each named for its expertise (kino film
|
|
86
|
+
production, nico the corpus's concept space and the cold-decode oracle, mav any software
|
|
87
|
+
repository), `persona(architectRole, residue)`: each is
|
|
69
88
|
an agent named as an individual, with a description and a mark of its own beside the values it
|
|
70
89
|
states. A single value it states replaces the role's, a slot only its own slot; a set value is added
|
|
71
90
|
after the role's, and restating one the role holds changes only its enforcement level or note. It
|
|
@@ -83,26 +102,32 @@ agent keeps the harness's defaults (0142). Its `key` is reserved for ipseic agen
|
|
|
83
102
|
`holder`, `persona`, `CompositionRefusal`, the six role cells and `MANIFEST` are also named exports,
|
|
84
103
|
for a corpus that composes agents of its own over these roles.
|
|
85
104
|
|
|
86
|
-
## Typed
|
|
105
|
+
## Typed handovers
|
|
87
106
|
|
|
88
107
|
An assignment and a deliverable are values of their factors, and each carries its contract as JSON
|
|
89
108
|
Schema data (`src/contracts.ts`, exported as `ASSIGNMENT_CONTRACTS` and `DELIVERABLE_CONTRACTS` by
|
|
90
|
-
the value's anchor). Composition copies the pair onto the agent as `contract
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
the value's anchor). Composition copies the pair onto the agent as `contract`. Each handover states
|
|
110
|
+
what it must contain, so one passed without a part shows what is missing (`?` marks an optional
|
|
111
|
+
field, `[≥1]` a list that may not be empty):
|
|
112
|
+
|
|
113
|
+
| Role | Assignment | Deliverable |
|
|
114
|
+
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
|
|
115
|
+
| lead | story `{story, slice, why, acceptanceCriteria[≥1], outOfScope, path, review, cost, examples?, decisions?, contexts?}`, or a task with no story (as below) | outcome `{story, criteria[≥1], meaningQuestions, followUps, cost}` |
|
|
116
|
+
| builder | task `{task, story?, goal, changes, decisions, done}` | change `{change, tests, verified}` |
|
|
117
|
+
| reviewer | review request `{change, story?, acceptanceCriteria?, examples?}` | review `{verdict, findings, meaningQuestions}` |
|
|
118
|
+
| check-writer | examples `{story, examples[≥1]}` | checks seen red `{story, checks}` |
|
|
119
|
+
| illustrator | concepts `{story, concepts[≥1]}` | examples with flagged terms `{examples, flaggedTerms}` |
|
|
120
|
+
|
|
121
|
+
The lead's assignment takes either form, stated as alternatives (`anyOf`); it fits when it fits any
|
|
122
|
+
one. Its outcome names the story, or for a task with no story the task, and holds each acceptance
|
|
123
|
+
criterion (or, for a task, what done means) with whether it holds and its evidence, and the cost in
|
|
124
|
+
agent runs by role, tokens and elapsed time. A review's `verdict` is `approve` or `changes`. The
|
|
125
|
+
architect's handovers are a person's — free-text intent in, a read-back to the operator out (where
|
|
126
|
+
things stand, with one recommendation) — so it carries no contract. A harness binds the deliverable
|
|
127
|
+
as its own output schema, shows the assignment form when an agent is dispatched or launched, and
|
|
128
|
+
checks the assignment given (one fenced `assignment` JSON block in the dispatch text) with the
|
|
129
|
+
schema package's `checkAssignment`, warning of each missing or ill-typed field, of the closest form
|
|
130
|
+
where there are alternatives; it never refuses the dispatch or the launch for it (0142(3)).
|
|
106
131
|
|
|
107
132
|
## Evaluation and drift
|
|
108
133
|
|
|
@@ -135,7 +160,7 @@ entry. Canon reaches the projector as **data** — the corpus is passed to it as
|
|
|
135
160
|
cell imports it.
|
|
136
161
|
|
|
137
162
|
No cell imports the runtime either. A skill names the capability it routes to — `concepts` or
|
|
138
|
-
`
|
|
163
|
+
`versionSkew`, the two built into the runtime — as `runtime: { capability: … }`,
|
|
139
164
|
never its implementation, and a cell that emits shell invoking the binary carries it as a fact the
|
|
140
165
|
projector substitutes at emission. That is the architecture's highest-ranked property — meaning
|
|
141
166
|
and mechanism never referencing each other — and [ARCHITECTURE.md](../../ARCHITECTURE.md) records
|
package/dist/agents/nico.js
CHANGED
|
@@ -12,7 +12,7 @@ import { zeroTrust } from '../dimensions/stance/zero-trust.js';
|
|
|
12
12
|
import { architectRole } from '../roles/architect.js';
|
|
13
13
|
export const nico = persona(architectRole, {
|
|
14
14
|
name: 'nico',
|
|
15
|
-
description: "Architect
|
|
15
|
+
description: "Architect named for the corpus's concept space and the cold-decode oracle: finds the sign that most precisely and efficiently invokes each concept in a model's semantic space, and keeps the name a reader with no context decodes as meant.",
|
|
16
16
|
mark: { emoji: '📐', hue: 'cyan' },
|
|
17
17
|
values: {
|
|
18
18
|
objective: [
|
package/dist/agents/nico.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nico.js","sourceRoot":"","sources":["../../src/agents/nico.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE;IACzC,IAAI,EAAE,MAAM;IACZ,WAAW,EACT
|
|
1
|
+
{"version":3,"file":"nico.js","sourceRoot":"","sources":["../../src/agents/nico.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE;IACzC,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,+OAA+O;IACjP,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;IAClC,MAAM,EAAE;QACN,SAAS,EAAE;YACT,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;YACnC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;SAC5C;QACD,SAAS,EAAE,CAAC,kBAAkB,CAAC;QAC/B,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;QACrE,kBAAkB,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC9D;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const reviewer: import("../manifest.js").Agent;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../src/agents/reviewer.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC"}
|
package/dist/contracts.js
CHANGED
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
2
|
-
// TYPED
|
|
2
|
+
// TYPED HANDOVERS — the JSON Schema each assignment and deliverable value carries.
|
|
3
3
|
//
|
|
4
4
|
// A role's assignment and deliverable are values of their factors; the contract a
|
|
5
|
-
//
|
|
5
|
+
// handover is checked against is DATA those values carry, paired here with the very
|
|
6
6
|
// value it belongs to. Composition copies the pair onto the agent
|
|
7
7
|
// (`Agent.contract`), and every harness reads it from there: the assignment checked
|
|
8
8
|
// before the agent runs, the deliverable bound as the harness's output schema.
|
|
9
9
|
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
10
|
+
// Each handover states what it must contain, so one passed without a part shows
|
|
11
|
+
// what is missing: its required fields are its contents. An array takes `[]` unless
|
|
12
|
+
// it is marked `minItems: 1`. An assignment taking alternative forms states each
|
|
13
|
+
// under `anyOf`, and fits when it fits any one. The architect's handovers are a
|
|
14
|
+
// person's: free-text intent in, a read-back to the operator out, neither of them
|
|
15
|
+
// JSON, so neither carries a contract.
|
|
13
16
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
17
|
import { anchorOf } from '@cratylus/schema';
|
|
15
18
|
import { concepts } from './dimensions/assignment/concepts.js';
|
|
16
|
-
import { cutBrief } from './dimensions/assignment/cut-brief.js';
|
|
17
19
|
import { examples } from './dimensions/assignment/examples.js';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
+
import { reviewRequest } from './dimensions/assignment/review-request.js';
|
|
21
|
+
import { story } from './dimensions/assignment/story.js';
|
|
22
|
+
import { task } from './dimensions/assignment/task.js';
|
|
23
|
+
import { change } from './dimensions/deliverable/change.js';
|
|
20
24
|
import { checksSeenRed } from './dimensions/deliverable/checks-seen-red.js';
|
|
21
|
-
import { doneOrFailingCase } from './dimensions/deliverable/done-or-failing-case.js';
|
|
22
25
|
import { examplesWithFlaggedTerms } from './dimensions/deliverable/examples-with-flagged-terms.js';
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
26
|
+
import { outcome } from './dimensions/deliverable/outcome.js';
|
|
27
|
+
import { review } from './dimensions/deliverable/review.js';
|
|
25
28
|
const text = { type: 'string' };
|
|
26
29
|
const count = { type: 'integer' };
|
|
27
30
|
const texts = { type: 'array', items: text };
|
|
@@ -37,117 +40,113 @@ const said = (schema, description) => ({
|
|
|
37
40
|
...schema,
|
|
38
41
|
description,
|
|
39
42
|
});
|
|
40
|
-
// What a field of
|
|
41
|
-
const
|
|
43
|
+
// What a field of a handover names, said once for every handover that holds it.
|
|
44
|
+
const storyField = said(text, 'The story, by its name (a kebab-case id).');
|
|
42
45
|
const exampleRefs = (schema, whose) => said(schema, `${whose}, each as \`<context>/<number>\` (e.g. \`booking/1\`).`);
|
|
46
|
+
const meaningQuestions = said(texts, 'Each question whose answer would change a concept or an example, for the architect to settle; empty when there is none.');
|
|
47
|
+
// The story and the task, each a form of its own: the lead takes either, a builder a task.
|
|
48
|
+
const storyForm = record({
|
|
49
|
+
story: storyField,
|
|
50
|
+
slice: said(text, "The thin slice of behaviour a user can rely on, in the design's own terms."),
|
|
51
|
+
why: said(text, 'Why the slice is wanted.'),
|
|
52
|
+
acceptanceCriteria: said(someTexts, 'What must hold in merged work for the story to be done, each criterion on its own.'),
|
|
53
|
+
outOfScope: said(texts, 'What the story does not cover; empty when nothing needs saying.'),
|
|
54
|
+
path: said({ type: 'string', enum: ['plain', 'scaled-up'] }, 'The path the story takes: plain, broken into tasks each built by one builder, or scaled up with specialists for its risk.'),
|
|
55
|
+
review: said(text, "How the story's changes are reviewed, as its risk picks: Ship (joined with no review), Show (joined, then reviewed) or Ask (reviewed before it joins); and, where the operator has asked to review a change before it joins, that gate."),
|
|
56
|
+
cost: said(text, 'Roughly what the story will cost, which its effort is weighed against.'),
|
|
57
|
+
examples: exampleRefs(texts, "The story's visible examples, where misunderstanding is likely"),
|
|
58
|
+
decisions: said(texts, 'The decisions in force for the story, by their ids (e.g. `0081`).'),
|
|
59
|
+
contexts: said(texts, 'The bounded contexts the story touches.'),
|
|
60
|
+
}, ['examples', 'decisions', 'contexts']);
|
|
61
|
+
const taskForm = record({
|
|
62
|
+
task: said(text, 'The task, by its name (a kebab-case id).'),
|
|
63
|
+
story: said(text, 'The story the task serves, by its name; absent for a change that alters no meaning, a task with no story.'),
|
|
64
|
+
goal: said(text, "What the task is for, in its story's terms."),
|
|
65
|
+
changes: said(text, 'What the task changes.'),
|
|
66
|
+
decisions: said(texts, 'The technical decisions that bind the task; empty when there are none.'),
|
|
67
|
+
done: said(text, 'What done means for the task.'),
|
|
68
|
+
}, ['story']);
|
|
43
69
|
const assignments = [
|
|
44
70
|
[
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
],
|
|
53
|
-
[
|
|
54
|
-
workPackage,
|
|
55
|
-
record({
|
|
56
|
-
cut: cutField,
|
|
57
|
-
workPackage: said(text, 'The work package, by its name in the ledger.'),
|
|
58
|
-
outputs: said(someTexts, 'The paths the package owns, which no other builder changes.'),
|
|
59
|
-
concepts: said(someTexts, 'The concepts the package serves, by name.'),
|
|
60
|
-
// A shared-output package owns no example, which a work package may do.
|
|
61
|
-
examples: exampleRefs(texts, 'The visible examples the package owns (none for a package sharing outputs)'),
|
|
62
|
-
}),
|
|
71
|
+
story,
|
|
72
|
+
{
|
|
73
|
+
anyOf: [
|
|
74
|
+
said(storyForm, 'A story.'),
|
|
75
|
+
said(taskForm, 'A task with no story: a change that alters no meaning.'),
|
|
76
|
+
],
|
|
77
|
+
},
|
|
63
78
|
],
|
|
79
|
+
[task, taskForm],
|
|
64
80
|
[
|
|
65
|
-
|
|
81
|
+
reviewRequest,
|
|
66
82
|
record({
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}),
|
|
83
|
+
change: said(text, 'The change to review, by its reference.'),
|
|
84
|
+
story: said(text, 'The story the change serves, by its name; absent for a task with no story.'),
|
|
85
|
+
acceptanceCriteria: said(texts, "The story's acceptance criteria the change is reviewed against, where they apply."),
|
|
86
|
+
examples: exampleRefs(texts, 'The examples the change is reviewed against, where they apply'),
|
|
87
|
+
}, ['story', 'acceptanceCriteria', 'examples']),
|
|
72
88
|
],
|
|
73
89
|
[
|
|
74
90
|
examples,
|
|
75
91
|
record({
|
|
76
|
-
|
|
92
|
+
story: storyField,
|
|
77
93
|
examples: exampleRefs(someTexts, 'The examples to bind checks to'),
|
|
78
94
|
}),
|
|
79
95
|
],
|
|
80
96
|
[
|
|
81
97
|
concepts,
|
|
82
98
|
record({
|
|
83
|
-
|
|
99
|
+
story: storyField,
|
|
84
100
|
concepts: said(someTexts, 'The concepts to illustrate with examples, by name.'),
|
|
85
101
|
}),
|
|
86
102
|
],
|
|
87
103
|
];
|
|
88
104
|
const deliverables = [
|
|
89
105
|
[
|
|
90
|
-
|
|
106
|
+
outcome,
|
|
91
107
|
said(record({
|
|
92
|
-
|
|
93
|
-
|
|
108
|
+
story: said(text, 'The story, or for a task with no story the task, by name.'),
|
|
109
|
+
criteria: said({
|
|
94
110
|
type: 'array',
|
|
95
111
|
minItems: 1,
|
|
96
112
|
items: record({
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
evidence: said(text, "Why the outcome holds, named by the example and by the check that binds it, in the design's concepts: what the check showed of the concept. Never a file, function, path or command, even where a verdict cites one: translate it into the concept it bears on."),
|
|
101
|
-
}),
|
|
102
|
-
}, "One outcome per visible example of the cut, each in the design's concepts."),
|
|
103
|
-
verdicts: said({
|
|
104
|
-
type: 'array',
|
|
105
|
-
items: record({
|
|
106
|
-
assayer: said(text, 'The assayer that judged, by its run.'),
|
|
107
|
-
verdict: said({ type: 'string', enum: ['accept', 'reject'] }, "The assayer's verdict on the cut, as it returned it."),
|
|
108
|
-
findings: said(texts, "The assayer's findings, each restated in the design's concepts; empty when it found none."),
|
|
113
|
+
criterion: said(text, 'The acceptance criterion, as the story states it.'),
|
|
114
|
+
holds: said(flag, 'Whether the criterion holds in merged work.'),
|
|
115
|
+
evidence: said(text, "Why it holds or does not, in the design's own terms: what the review and the checks showed of the concept. Never a file, function, path or command: translate it into the concept it bears on."),
|
|
109
116
|
}),
|
|
110
|
-
},
|
|
111
|
-
|
|
117
|
+
}, 'The acceptance criteria, or for a task with no story what done means, each with whether it holds and its evidence.'),
|
|
118
|
+
meaningQuestions,
|
|
119
|
+
followUps: said(texts, 'What the story leaves unfinished, each as work to take up later; empty when there is none.'),
|
|
120
|
+
cost: said(record({
|
|
112
121
|
agentRuns: said(record({
|
|
113
|
-
total: said(count, 'Every agent run the
|
|
122
|
+
total: said(count, 'Every agent run the story took.'),
|
|
114
123
|
byRole: said({ type: 'object', additionalProperties: count }, 'The agent runs by role.'),
|
|
115
|
-
}), 'The agent runs the harness reports for the
|
|
116
|
-
rounds: said(count, 'The rounds of build and judgment.'),
|
|
117
|
-
wholeCheckRuns: said(count, 'The runs of the whole check.'),
|
|
124
|
+
}), 'The agent runs the harness reports for the story.'),
|
|
118
125
|
tokens: said(count, 'The tokens the runs reported, summed.'),
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}), "The lead's
|
|
126
|
+
elapsed: said(text, 'The time the story took, from its start to its end.'),
|
|
127
|
+
}), 'What the story cost, as the harness records it.'),
|
|
128
|
+
}), "The lead's outcome of the story to the architect, in the design's own terms: which acceptance criteria hold with their evidence, the meaning questions it raised, the follow-ups it leaves and what it cost."),
|
|
122
129
|
],
|
|
123
130
|
[
|
|
124
|
-
|
|
125
|
-
record({
|
|
126
|
-
'
|
|
127
|
-
|
|
131
|
+
change,
|
|
132
|
+
record({
|
|
133
|
+
change: said(text, 'What the change does and why, by area.'),
|
|
134
|
+
tests: said(text, 'The tests added, changed or deleted.'),
|
|
135
|
+
verified: said(text, 'What was verified, and how.'),
|
|
136
|
+
}),
|
|
128
137
|
],
|
|
129
138
|
[
|
|
130
|
-
|
|
139
|
+
review,
|
|
131
140
|
record({
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
minItems: 1,
|
|
136
|
-
items: record({
|
|
137
|
-
workPackage: text,
|
|
138
|
-
concept: text,
|
|
139
|
-
passes: flag,
|
|
140
|
-
evidence: text,
|
|
141
|
-
finding: text,
|
|
142
|
-
}, ['finding']),
|
|
143
|
-
},
|
|
144
|
-
hardeningNotes: texts,
|
|
141
|
+
verdict: said({ type: 'string', enum: ['approve', 'changes'] }, 'Whether the review approves the change or asks for changes.'),
|
|
142
|
+
findings: said(texts, 'Each finding, naming what must change and why; empty when there is none.'),
|
|
143
|
+
meaningQuestions,
|
|
145
144
|
}),
|
|
146
145
|
],
|
|
147
146
|
[
|
|
148
147
|
checksSeenRed,
|
|
149
148
|
record({
|
|
150
|
-
|
|
149
|
+
story: storyField,
|
|
151
150
|
checks: {
|
|
152
151
|
type: 'array',
|
|
153
152
|
items: record({ example: text, check: text, seenRed: flag }),
|
package/dist/contracts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const integrate = `integrate ≜
|
|
1
|
+
export const integrate = `integrate ≜ join a change to the project's shared work by the project's own convention, once every check passes and any review due before it joins approves it`;
|
|
2
2
|
//# sourceMappingURL=integrate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../../src/dimensions/action-scope/integrate.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAgB,
|
|
1
|
+
{"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../../src/dimensions/action-scope/integrate.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAgB,gKAAgK,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const concepts = `concepts ≜ a
|
|
1
|
+
export const concepts = `concepts ≜ a story's concepts only`;
|
|
2
2
|
//# sourceMappingURL=concepts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concepts.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/concepts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAe,
|
|
1
|
+
{"version":3,"file":"concepts.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/concepts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAe,oCAAoC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Assignment } from '../../manifest.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const reviewRequest: Assignment;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-request.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/review-request.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAe,0LAA0L,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Assignment } from '../../manifest.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const story: Assignment;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const story = `story ≜ one thin slice of behaviour a user can rely on: the slice and why it is wanted, its acceptance criteria, what is out of scope, its path and whether its changes ship, show or ask, its rough cost, and examples where misunderstanding is likely; or, for a change that alters no meaning, a task with no story`;
|
|
2
|
+
//# sourceMappingURL=story.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"story.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/story.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAe,yTAAyT,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Assignment } from '../../manifest.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const task: Assignment;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/task.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAe,8HAA8H,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Deliverable } from '../../manifest.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const change: Deliverable;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change.js","sourceRoot":"","sources":["../../../src/dimensions/deliverable/change.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAgB,8EAA8E,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Deliverable } from '../../manifest.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const outcome: Deliverable;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const outcome = `outcome ≜ which of the story's acceptance criteria hold, each with its evidence in the design's own terms rather than those of the realization, the meaning questions it raised, the follow-ups it leaves, and what it cost`;
|
|
2
|
+
//# sourceMappingURL=outcome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../../src/dimensions/deliverable/outcome.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAgB,6NAA6N,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-back.js","sourceRoot":"","sources":["../../../src/dimensions/deliverable/read-back.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAgB,oGAAoG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/dimensions/deliverable/review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAgB,wGAAwG,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const evaluationDesign = `evaluation-design ≜ designing the checks that bind a
|
|
1
|
+
export const evaluationDesign = `evaluation-design ≜ designing the checks that bind a story's examples: deterministic where cheap and repeatable, judged in review otherwise`;
|
|
2
2
|
//# sourceMappingURL=evaluation-design.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-design.js","sourceRoot":"","sources":["../../../src/dimensions/expertise/evaluation-design.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAc,
|
|
1
|
+
{"version":3,"file":"evaluation-design.js","sourceRoot":"","sources":["../../../src/dimensions/expertise/evaluation-design.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAc,6IAA6I,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const softwareDelivery = `software-delivery ≜ turning a design into
|
|
1
|
+
export const softwareDelivery = `software-delivery ≜ turning a design into merged, verified software`;
|
|
2
2
|
//# sourceMappingURL=software-delivery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"software-delivery.js","sourceRoot":"","sources":["../../../src/dimensions/expertise/software-delivery.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAc,
|
|
1
|
+
{"version":3,"file":"software-delivery.js","sourceRoot":"","sources":["../../../src/dimensions/expertise/software-delivery.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAc,qEAAqE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const fixedAcceptanceCriteria = `fixed-acceptance-criteria ≜ never changes the examples the work is
|
|
1
|
+
export const fixedAcceptanceCriteria = `fixed-acceptance-criteria ≜ never changes the acceptance criteria or examples the work is reviewed against`;
|
|
2
2
|
//# sourceMappingURL=fixed-acceptance-criteria.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-acceptance-criteria.js","sourceRoot":"","sources":["../../../src/dimensions/guardrails/fixed-acceptance-criteria.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAe,
|
|
1
|
+
{"version":3,"file":"fixed-acceptance-criteria.js","sourceRoot":"","sources":["../../../src/dimensions/guardrails/fixed-acceptance-criteria.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAe,4GAA4G,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const neverRepairs = `never-repairs ≜ never fixes the work it
|
|
1
|
+
export const neverRepairs = `never-repairs ≜ never fixes the work it reviews; it names each finding`;
|
|
2
2
|
//# sourceMappingURL=never-repairs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"never-repairs.js","sourceRoot":"","sources":["../../../src/dimensions/guardrails/never-repairs.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAe,
|
|
1
|
+
{"version":3,"file":"never-repairs.js","sourceRoot":"","sources":["../../../src/dimensions/guardrails/never-repairs.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAe,wEAAwE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const correctness = `correctness ≜ the
|
|
1
|
+
export const correctness = `correctness ≜ the change does what its task says, every check passing`;
|
|
2
2
|
//# sourceMappingURL=correctness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correctness.js","sourceRoot":"","sources":["../../../src/dimensions/objective/correctness.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc,
|
|
1
|
+
{"version":3,"file":"correctness.js","sourceRoot":"","sources":["../../../src/dimensions/objective/correctness.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc,uEAAuE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const delivery = `delivery ≜ the
|
|
1
|
+
export const delivery = `delivery ≜ the story done, its acceptance criteria holding in merged work, at the least effort that converges`;
|
|
2
2
|
//# sourceMappingURL=delivery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/dimensions/objective/delivery.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAc,
|
|
1
|
+
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/dimensions/objective/delivery.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAc,+GAA+G,CAAC"}
|