@cratylus/canon 0.18.0 → 0.19.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 +50 -41
- package/dist/agents/kino.js +1 -1
- package/dist/agents/kino.js.map +1 -1
- package/dist/agents/mav.js +1 -1
- package/dist/agents/mav.js.map +1 -1
- package/dist/agents/nico.js +1 -1
- package/dist/agents/nico.js.map +1 -1
- package/dist/contracts.js +15 -15
- 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/review-request.js +1 -1
- package/dist/dimensions/assignment/review-request.js.map +1 -1
- package/dist/dimensions/assignment/task.js +1 -1
- package/dist/dimensions/assignment/task.js.map +1 -1
- package/dist/dimensions/assignment/{story.d.ts → user-story.d.ts} +1 -1
- package/dist/dimensions/assignment/user-story.js +2 -0
- package/dist/dimensions/assignment/user-story.js.map +1 -0
- package/dist/dimensions/autonomy/management-by-exception.d.ts +2 -0
- package/dist/dimensions/autonomy/management-by-exception.js +2 -0
- package/dist/dimensions/autonomy/management-by-exception.js.map +1 -0
- package/dist/dimensions/deliverable/{review.d.ts → code-review.d.ts} +1 -1
- package/dist/dimensions/deliverable/code-review.js +2 -0
- package/dist/dimensions/deliverable/code-review.js.map +1 -0
- package/dist/dimensions/deliverable/outcome.js +1 -1
- package/dist/dimensions/deliverable/outcome.js.map +1 -1
- package/dist/dimensions/expertise/evaluation-design.js +1 -1
- package/dist/dimensions/expertise/evaluation-design.js.map +1 -1
- package/dist/dimensions/model/frontier-other-family.js +1 -1
- package/dist/dimensions/model/frontier-other-family.js.map +1 -1
- package/dist/dimensions/objective/conceptual-integrity.js +1 -1
- package/dist/dimensions/objective/conceptual-integrity.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/review-accuracy.js +1 -1
- package/dist/dimensions/objective/review-accuracy.js.map +1 -1
- package/dist/dimensions/perception-scope/concept-journal.js +1 -1
- package/dist/dimensions/perception-scope/concept-journal.js.map +1 -1
- 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-task.js +1 -1
- package/dist/dimensions/perception-scope/own-task.js.map +1 -1
- package/dist/dimensions/perception-scope/{work.d.ts → work-product.d.ts} +1 -1
- package/dist/dimensions/perception-scope/work-product.js +2 -0
- package/dist/dimensions/perception-scope/work-product.js.map +1 -0
- package/dist/dimensions/procedure/code-review.js +1 -1
- package/dist/dimensions/procedure/code-review.js.map +1 -1
- package/dist/dimensions/procedure/reconstitution.js +1 -1
- package/dist/dimensions/procedure/reconstitution.js.map +1 -1
- package/dist/dimensions/procedure/ship-show-ask.js +1 -1
- package/dist/dimensions/procedure/ship-show-ask.js.map +1 -1
- 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/reviewer.js +1 -1
- package/dist/dimensions/role/reviewer.js.map +1 -1
- package/dist/dimensions/stance/{proportionate.d.ts → tailoring.d.ts} +1 -1
- package/dist/dimensions/stance/tailoring.js +2 -0
- package/dist/dimensions/stance/tailoring.js.map +1 -0
- package/dist/genus/persona.d.ts +1 -1
- package/dist/genus/persona.js +3 -3
- package/dist/manifest.d.ts +4 -4
- package/dist/manifest.js +4 -4
- package/dist/manifest.js.map +1 -1
- package/dist/practices.js +1 -1
- package/dist/practices.js.map +1 -1
- package/dist/roles/architect.js +14 -14
- package/dist/roles/architect.js.map +1 -1
- package/dist/roles/builder.js +4 -4
- package/dist/roles/builder.js.map +1 -1
- package/dist/roles/check-writer.js +3 -3
- package/dist/roles/check-writer.js.map +1 -1
- package/dist/roles/illustrator.js +2 -2
- package/dist/roles/illustrator.js.map +1 -1
- package/dist/roles/lead.js +17 -15
- package/dist/roles/lead.js.map +1 -1
- package/dist/roles/reviewer.js +8 -7
- package/dist/roles/reviewer.js.map +1 -1
- package/dist/rules/repo-preamble.js +4 -4
- package/dist/rules/repo-preamble.js.map +1 -1
- package/dist/skills/create-agent/skill.js +1 -1
- package/dist/skills/introspect/skill.js +1 -1
- package/dist/skills/signify/skill.js +2 -2
- package/package.json +3 -3
- package/dist/dimensions/assignment/story.js +0 -2
- package/dist/dimensions/assignment/story.js.map +0 -1
- package/dist/dimensions/deliverable/review.js +0 -2
- package/dist/dimensions/deliverable/review.js.map +0 -1
- package/dist/dimensions/perception-scope/work.js +0 -2
- package/dist/dimensions/perception-scope/work.js.map +0 -1
- package/dist/dimensions/stance/proportionate.js +0 -2
- package/dist/dimensions/stance/proportionate.js.map +0 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ optimal-signifiers, authored as typed TypeScript.
|
|
|
6
6
|
The discipline is [latent lexicography](../../VISION.md): describing the vocabulary a foundation model
|
|
7
7
|
already holds, rather than authoring prose and hoping it lands. An agent or skill in this corpus is
|
|
8
8
|
therefore not a prompt. It is a **vector of values** over the catalog's factors, and the
|
|
9
|
-
markdown
|
|
9
|
+
markdown an agent harness reads is a projection of these modules.
|
|
10
10
|
|
|
11
11
|
Canon is harness-agnostic **and** runtime-agnostic: it says what an agent _is_ and what a skill
|
|
12
12
|
_means_, never how either is carried. What every package is for is
|
|
@@ -60,21 +60,27 @@ are [`@cratylus/schema`](../schema/README.md)'s.
|
|
|
60
60
|
|
|
61
61
|
The plugin carries nine agents, all in the practice `intent-based-delegation`, which delivers
|
|
62
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
|
|
65
|
-
|
|
66
|
-
- **architect** — the operator's principal architect, owning the conceptual
|
|
67
|
-
hands
|
|
68
|
-
- **lead** — owns a story's realization, or a task with no story: orchestrates its tasks to
|
|
69
|
-
(orchestrator-workers) and their changes to review as
|
|
70
|
-
Ask), joins each change by the project's own integration once every check passes
|
|
71
|
-
due before it joins approves it, and hands
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
63
|
+
their roles, with `illustrator` and `check-writer` as specialists called in when a user story's risk
|
|
64
|
+
warrants them. Each role is defined by what it receives and what it hands off, never by steps:
|
|
65
|
+
|
|
66
|
+
- **architect** — the operator's principal architect, owning the conceptual model: receives intent,
|
|
67
|
+
hands off user stories, answers to meaning questions and read-backs; decides meaning only.
|
|
68
|
+
- **lead** — owns a user story's realization, or a task with no story: orchestrates its tasks to
|
|
69
|
+
builders (orchestrator-workers) and their changes to code review as the story's risk calls for
|
|
70
|
+
(Ship, Show or Ask), joins each change by the project's own integration once every check passes
|
|
71
|
+
and any review due before it joins approves it, and hands off the outcome. Where the operator has
|
|
72
|
+
asked to review a change before it joins, no agent reviews it: the operator's review is its code
|
|
73
|
+
review, and it joins only on the operator's sign-off, a hold point.
|
|
74
|
+
- **builder** — receives one task and hands off one change that passes every check.
|
|
75
|
+
- **reviewer** — reviews one change it did not write, before or after it joins as its user story's
|
|
76
|
+
risk calls for, against the change and, where they apply, the story's acceptance criteria and
|
|
77
|
+
examples, held-out ones included; hands off one code review and never builds or repairs the work.
|
|
78
|
+
It never reviews a change the operator has asked to review itself; the operator takes that
|
|
79
|
+
change's held-out examples directly from the design.
|
|
80
|
+
- **illustrator** — writes a user story's examples cold from its concepts alone, flagging unclear
|
|
81
|
+
terms.
|
|
82
|
+
- **check-writer** — writes the checks binding a user story's examples, each seen failing before the
|
|
83
|
+
build.
|
|
78
84
|
|
|
79
85
|
The reviewer, the illustrator and the check-writer run on another model family than the builders
|
|
80
86
|
where one is available. A role cell (`src/roles/<role>.ts`) states a value for every factor, an
|
|
@@ -83,8 +89,10 @@ role, carrying nothing beyond it and no mark. `holder` refuses a cell missing a
|
|
|
83
89
|
without exactly one value, a slot not filled exactly once, and empty guardrails.
|
|
84
90
|
|
|
85
91
|
kino, nico and mav are personas over the architect role, each named for its expertise (kino film
|
|
86
|
-
production, nico the corpus
|
|
87
|
-
|
|
92
|
+
production and generative video, nico the corpus and latent lexicography, mav software
|
|
93
|
+
engineering). The architect role owns the conceptual model of every context it is given, the
|
|
94
|
+
corpus included; a persona brings its expertise and owns nothing its role does not.
|
|
95
|
+
Each is `persona(architectRole, residue)`:
|
|
88
96
|
an agent named as an individual, with a description and a mark of its own beside the values it
|
|
89
97
|
states. A single value it states replaces the role's, a slot only its own slot; a set value is added
|
|
90
98
|
after the role's, and restating one the role holds changes only its enforcement level or note. It
|
|
@@ -98,43 +106,44 @@ harm from one is on record (decision 0142(2)).
|
|
|
98
106
|
A composed agent also says, for the projector, the role it holds (`holds`), its model's tier and
|
|
99
107
|
effort (`routing`), its typed handoff (`contract`) and the per-turn persistence protocol every agent
|
|
100
108
|
re-grounds its stance by (`persistence`). Nothing narrows its tools or whom it may dispatch: every
|
|
101
|
-
agent keeps the harness's defaults (0142). Its `key` is reserved for ipseic agents and is empty.
|
|
109
|
+
agent keeps the agent harness's defaults (0142). Its `key` is reserved for ipseic agents and is empty.
|
|
102
110
|
`holder`, `persona`, `CompositionRefusal`, the six role cells and `MANIFEST` are also named exports,
|
|
103
111
|
for a corpus that composes agents of its own over these roles.
|
|
104
112
|
|
|
105
|
-
## Typed
|
|
113
|
+
## Typed handoffs
|
|
106
114
|
|
|
107
115
|
An assignment and a deliverable are values of their factors, and each carries its contract as JSON
|
|
108
116
|
Schema data (`src/contracts.ts`, exported as `ASSIGNMENT_CONTRACTS` and `DELIVERABLE_CONTRACTS` by
|
|
109
|
-
the value's anchor). Composition copies the pair onto the agent as `contract`. Each
|
|
117
|
+
the value's anchor). Composition copies the pair onto the agent as `contract`. Each handoff states
|
|
110
118
|
what it must contain, so one passed without a part shows what is missing (`?` marks an optional
|
|
111
119
|
field, `[≥1]` a list that may not be empty):
|
|
112
120
|
|
|
113
|
-
| Role | Assignment
|
|
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}`
|
|
117
|
-
| reviewer | review request `{change, story?, acceptanceCriteria?, examples?}`
|
|
118
|
-
| check-writer | examples `{story, examples[≥1]}`
|
|
119
|
-
| illustrator | concepts `{story, concepts[≥1]}`
|
|
121
|
+
| Role | Assignment | Deliverable |
|
|
122
|
+
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
|
|
123
|
+
| lead | user 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}` |
|
|
124
|
+
| builder | task `{task, story?, goal, changes, decisions, done}` | change `{change, tests, verified}` |
|
|
125
|
+
| reviewer | review request `{change, story?, acceptanceCriteria?, examples?}` | code review `{verdict, findings, meaningQuestions}` |
|
|
126
|
+
| check-writer | examples `{story, examples[≥1]}` | checks seen red `{story, checks}` |
|
|
127
|
+
| illustrator | concepts `{story, concepts[≥1]}` | examples with flagged terms `{examples, flaggedTerms}` |
|
|
120
128
|
|
|
121
129
|
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
|
|
123
|
-
criterion (or, for a task, what done means) with whether it holds and its evidence, and
|
|
124
|
-
agent runs by role, tokens and elapsed time. A review's `verdict` is `approve` or
|
|
125
|
-
architect's
|
|
126
|
-
things stand, with one recommendation) — so it carries no contract.
|
|
127
|
-
as its own output schema, shows the assignment form when an agent is
|
|
128
|
-
checks the assignment given (one fenced `assignment` JSON block in the
|
|
129
|
-
schema package's `checkAssignment`, warning of each missing or ill-typed
|
|
130
|
-
where there are alternatives; it never refuses the dispatch or the launch
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
one. Its outcome names the user story, or for a task with no story the task, and holds each
|
|
131
|
+
acceptance criterion (or, for a task, what done means) with whether it holds and its evidence, and
|
|
132
|
+
the cost in agent runs by role, tokens and elapsed time. A code review's `verdict` is `approve` or
|
|
133
|
+
`changes`. The architect's handoffs are a person's — free-text intent in, a read-back to the
|
|
134
|
+
operator out (where things stand, with one recommendation) — so it carries no contract. An agent
|
|
135
|
+
harness binds the deliverable as its own output schema, shows the assignment form when an agent is
|
|
136
|
+
dispatched or launched, and checks the assignment given (one fenced `assignment` JSON block in the
|
|
137
|
+
dispatch text) with the schema package's `checkAssignment`, warning of each missing or ill-typed
|
|
138
|
+
field, of the closest form where there are alternatives; it never refuses the dispatch or the launch
|
|
139
|
+
for it (0142(3)).
|
|
140
|
+
|
|
141
|
+
## Evaluation and persona drift
|
|
133
142
|
|
|
134
143
|
Every agent's behaviour is evaluated in real use, by the operator working with it: its evaluation
|
|
135
144
|
factor holds the one value `in-use`, and no guard, hook or model-judged check holds its acts or its
|
|
136
|
-
replies (0142(1)).
|
|
137
|
-
and its definition is revised on the evidence of use.
|
|
145
|
+
replies (0142(1)). Persona drift is held by the agent's own text, the persistence protocol naming
|
|
146
|
+
its tells, and its definition is revised on the evidence of use.
|
|
138
147
|
|
|
139
148
|
## The first principle
|
|
140
149
|
|
package/dist/agents/kino.js
CHANGED
|
@@ -8,7 +8,7 @@ import { userCentered } from '../dimensions/stance/user-centered.js';
|
|
|
8
8
|
import { architectRole } from '../roles/architect.js';
|
|
9
9
|
export const kino = persona(architectRole, {
|
|
10
10
|
name: 'kino',
|
|
11
|
-
description: "Architect
|
|
11
|
+
description: "Architect expert in film production and generative video: teaches the layman operator the industry's own practice, each recommendation traced to its source.",
|
|
12
12
|
mark: { emoji: '🎬', hue: 'magenta' },
|
|
13
13
|
values: {
|
|
14
14
|
expertise: [filmProduction, generativeVideo],
|
package/dist/agents/kino.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kino.js","sourceRoot":"","sources":["../../src/agents/kino.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,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":"kino.js","sourceRoot":"","sources":["../../src/agents/kino.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE;IACzC,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,8JAA8J;IAChK,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;IACrC,MAAM,EAAE;QACN,SAAS,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;QAC5C,MAAM,EAAE,CAAC,YAAY,CAAC;QACtB,kBAAkB,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;KAC1E;CACF,CAAC,CAAC"}
|
package/dist/agents/mav.js
CHANGED
|
@@ -6,7 +6,7 @@ import { softwareEngineering } from '../dimensions/expertise/software-engineerin
|
|
|
6
6
|
import { architectRole } from '../roles/architect.js';
|
|
7
7
|
export const mav = persona(architectRole, {
|
|
8
8
|
name: 'mav',
|
|
9
|
-
description:
|
|
9
|
+
description: 'Architect expert in software engineering: models any repository it is given as a software engineer would.',
|
|
10
10
|
mark: { emoji: '✈️', hue: 'green' },
|
|
11
11
|
values: {
|
|
12
12
|
expertise: [softwareEngineering],
|
package/dist/agents/mav.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mav.js","sourceRoot":"","sources":["../../src/agents/mav.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE;IACxC,IAAI,EAAE,KAAK;IACX,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"mav.js","sourceRoot":"","sources":["../../src/agents/mav.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE;IACxC,IAAI,EAAE,KAAK;IACX,WAAW,EACT,2GAA2G;IAC7G,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;IACnC,MAAM,EAAE;QACN,SAAS,EAAE,CAAC,mBAAmB,CAAC;QAChC,kBAAkB,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC9D;CACF,CAAC,CAAC"}
|
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 expert in the corpus and latent lexicography: 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,4NAA4N;IAC9N,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"}
|
package/dist/contracts.js
CHANGED
|
@@ -18,13 +18,13 @@ import { anchorOf } from '@cratylus/schema';
|
|
|
18
18
|
import { concepts } from './dimensions/assignment/concepts.js';
|
|
19
19
|
import { examples } from './dimensions/assignment/examples.js';
|
|
20
20
|
import { reviewRequest } from './dimensions/assignment/review-request.js';
|
|
21
|
-
import { story } from './dimensions/assignment/story.js';
|
|
22
21
|
import { task } from './dimensions/assignment/task.js';
|
|
22
|
+
import { userStory } from './dimensions/assignment/user-story.js';
|
|
23
23
|
import { change } from './dimensions/deliverable/change.js';
|
|
24
24
|
import { checksSeenRed } from './dimensions/deliverable/checks-seen-red.js';
|
|
25
|
+
import { codeReview } from './dimensions/deliverable/code-review.js';
|
|
25
26
|
import { examplesWithFlaggedTerms } from './dimensions/deliverable/examples-with-flagged-terms.js';
|
|
26
27
|
import { outcome } from './dimensions/deliverable/outcome.js';
|
|
27
|
-
import { review } from './dimensions/deliverable/review.js';
|
|
28
28
|
const text = { type: 'string' };
|
|
29
29
|
const count = { type: 'integer' };
|
|
30
30
|
const texts = { type: 'array', items: text };
|
|
@@ -41,7 +41,7 @@ const said = (schema, description) => ({
|
|
|
41
41
|
description,
|
|
42
42
|
});
|
|
43
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).');
|
|
44
|
+
const storyField = said(text, 'The user story, by its name (a kebab-case id).');
|
|
45
45
|
const exampleRefs = (schema, whose) => said(schema, `${whose}, each as \`<context>/<number>\` (e.g. \`booking/1\`).`);
|
|
46
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
47
|
// The story and the task, each a form of its own: the lead takes either, a builder a task.
|
|
@@ -52,7 +52,7 @@ const storyForm = record({
|
|
|
52
52
|
acceptanceCriteria: said(someTexts, 'What must hold in merged work for the story to be done, each criterion on its own.'),
|
|
53
53
|
outOfScope: said(texts, 'What the story does not cover; empty when nothing needs saying.'),
|
|
54
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
|
|
55
|
+
review: said(text, "How the story's changes are reviewed, as its risk picks: Ship (joined with no code 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 hold point: the operator's review is that change's code review, under Ask, and no agent reviews it."),
|
|
56
56
|
cost: said(text, 'Roughly what the story will cost, which its effort is weighed against.'),
|
|
57
57
|
examples: exampleRefs(texts, "The story's visible examples, where misunderstanding is likely"),
|
|
58
58
|
decisions: said(texts, 'The decisions in force for the story, by their ids (e.g. `0081`).'),
|
|
@@ -60,18 +60,18 @@ const storyForm = record({
|
|
|
60
60
|
}, ['examples', 'decisions', 'contexts']);
|
|
61
61
|
const taskForm = record({
|
|
62
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."),
|
|
63
|
+
story: said(text, 'The user 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 user story's terms."),
|
|
65
65
|
changes: said(text, 'What the task changes.'),
|
|
66
66
|
decisions: said(texts, 'The technical decisions that bind the task; empty when there are none.'),
|
|
67
67
|
done: said(text, 'What done means for the task.'),
|
|
68
68
|
}, ['story']);
|
|
69
69
|
const assignments = [
|
|
70
70
|
[
|
|
71
|
-
|
|
71
|
+
userStory,
|
|
72
72
|
{
|
|
73
73
|
anyOf: [
|
|
74
|
-
said(storyForm, 'A story.'),
|
|
74
|
+
said(storyForm, 'A user story.'),
|
|
75
75
|
said(taskForm, 'A task with no story: a change that alters no meaning.'),
|
|
76
76
|
],
|
|
77
77
|
},
|
|
@@ -81,7 +81,7 @@ const assignments = [
|
|
|
81
81
|
reviewRequest,
|
|
82
82
|
record({
|
|
83
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.'),
|
|
84
|
+
story: said(text, 'The user story the change serves, by its name; absent for a task with no story.'),
|
|
85
85
|
acceptanceCriteria: said(texts, "The story's acceptance criteria the change is reviewed against, where they apply."),
|
|
86
86
|
examples: exampleRefs(texts, 'The examples the change is reviewed against, where they apply'),
|
|
87
87
|
}, ['story', 'acceptanceCriteria', 'examples']),
|
|
@@ -105,14 +105,14 @@ const deliverables = [
|
|
|
105
105
|
[
|
|
106
106
|
outcome,
|
|
107
107
|
said(record({
|
|
108
|
-
story: said(text, 'The story, or for a task with no story the task, by name.'),
|
|
108
|
+
story: said(text, 'The user story, or for a task with no story the task, by name.'),
|
|
109
109
|
criteria: said({
|
|
110
110
|
type: 'array',
|
|
111
111
|
minItems: 1,
|
|
112
112
|
items: record({
|
|
113
113
|
criterion: said(text, 'The acceptance criterion, as the story states it.'),
|
|
114
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."),
|
|
115
|
+
evidence: said(text, "Why it holds or does not, in the design's own terms: what the code review and the checks showed of the concept. Never a file, function, path or command: translate it into the concept it bears on."),
|
|
116
116
|
}),
|
|
117
117
|
}, 'The acceptance criteria, or for a task with no story what done means, each with whether it holds and its evidence.'),
|
|
118
118
|
meaningQuestions,
|
|
@@ -124,8 +124,8 @@ const deliverables = [
|
|
|
124
124
|
}), 'The agent runs the harness reports for the story.'),
|
|
125
125
|
tokens: said(count, 'The tokens the runs reported, summed.'),
|
|
126
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."),
|
|
127
|
+
}), 'What the story cost, as the agent harness records it.'),
|
|
128
|
+
}), "The lead's outcome of the user 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."),
|
|
129
129
|
],
|
|
130
130
|
[
|
|
131
131
|
change,
|
|
@@ -136,9 +136,9 @@ const deliverables = [
|
|
|
136
136
|
}),
|
|
137
137
|
],
|
|
138
138
|
[
|
|
139
|
-
|
|
139
|
+
codeReview,
|
|
140
140
|
record({
|
|
141
|
-
verdict: said({ type: 'string', enum: ['approve', 'changes'] }, 'Whether the review approves the change or asks for changes.'),
|
|
141
|
+
verdict: said({ type: 'string', enum: ['approve', 'changes'] }, 'Whether the code review approves the change or asks for changes.'),
|
|
142
142
|
findings: said(texts, 'Each finding, naming what must change and why; empty when there is none.'),
|
|
143
143
|
meaningQuestions,
|
|
144
144
|
}),
|
package/dist/contracts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,mFAAmF;AACnF,EAAE;AACF,kFAAkF;AAClF,oFAAoF;AACpF,kEAAkE;AAClE,oFAAoF;AACpF,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,oFAAoF;AACpF,iFAAiF;AACjF,gFAAgF;AAChF,kFAAkF;AAClF,uCAAuC;AACvC,gFAAgF;AAEhF,OAAO,EAAmB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,
|
|
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 ≜ 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`;
|
|
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 code 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,qKAAqK,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const concepts = `concepts ≜ a story's concepts only`;
|
|
1
|
+
export const concepts = `concepts ≜ a user 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,yCAAyC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const reviewRequest = `review-request ≜ a change to review, before or after it joins as its story's risk calls for, with
|
|
1
|
+
export const reviewRequest = `review-request ≜ a change to review, before or after it joins as its user story's risk calls for, with the story's acceptance criteria and examples, held-out ones included, where they apply`;
|
|
2
2
|
//# sourceMappingURL=review-request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-request.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/review-request.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAe,
|
|
1
|
+
{"version":3,"file":"review-request.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/review-request.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAe,+LAA+L,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const task = `task ≜ one change: its goal in its story's terms, what it changes, the technical decisions that bind it, and what done means`;
|
|
1
|
+
export const task = `task ≜ one change: its goal in its user story's terms, what it changes, the technical decisions that bind it, and what done means`;
|
|
2
2
|
//# sourceMappingURL=task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/task.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAe,
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/task.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAe,mIAAmI,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Assignment } from '../../manifest.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const userStory: Assignment;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const userStory = `user-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=user-story.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-story.js","sourceRoot":"","sources":["../../../src/dimensions/assignment/user-story.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAe,8TAA8T,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"management-by-exception.js","sourceRoot":"","sources":["../../../src/dimensions/autonomy/management-by-exception.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAa,iLAAiL,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Deliverable } from '../../manifest.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const codeReview: Deliverable;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-review.js","sourceRoot":"","sources":["../../../src/dimensions/deliverable/code-review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAgB,6GAA6G,CAAC"}
|
|
@@ -1,2 +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`;
|
|
1
|
+
export const outcome = `outcome ≜ which of the user 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
2
|
//# sourceMappingURL=outcome.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../../src/dimensions/deliverable/outcome.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAgB,
|
|
1
|
+
{"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../../src/dimensions/deliverable/outcome.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAgB,kOAAkO,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const evaluationDesign = `evaluation-design ≜ designing the checks that bind a story's examples: deterministic where cheap and repeatable, judged in review otherwise`;
|
|
1
|
+
export const evaluationDesign = `evaluation-design ≜ designing the checks that bind a user story's examples: deterministic where cheap and repeatable, judged in code 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,uJAAuJ,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const frontierOtherFamily = `frontier-other-family ≜ the strongest of another model family`;
|
|
1
|
+
export const frontierOtherFamily = `frontier-other-family ≜ the strongest of another model family than the builders' where one is available, any available model otherwise`;
|
|
2
2
|
//# sourceMappingURL=frontier-other-family.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontier-other-family.js","sourceRoot":"","sources":["../../../src/dimensions/model/frontier-other-family.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAU
|
|
1
|
+
{"version":3,"file":"frontier-other-family.js","sourceRoot":"","sources":["../../../src/dimensions/model/frontier-other-family.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAU,wIAAwI,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const conceptualIntegrity = `conceptual-integrity ≜ one coherent design, made real in the work; the measure is the realized meaning, not a green suite`;
|
|
1
|
+
export const conceptualIntegrity = `conceptual-integrity ≜ in Brooks's sense: one coherent design, made real in the work; the measure is the realized meaning, not a green suite`;
|
|
2
2
|
//# sourceMappingURL=conceptual-integrity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conceptual-integrity.js","sourceRoot":"","sources":["../../../src/dimensions/objective/conceptual-integrity.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAc,
|
|
1
|
+
{"version":3,"file":"conceptual-integrity.js","sourceRoot":"","sources":["../../../src/dimensions/objective/conceptual-integrity.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAc,8IAA8I,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const delivery = `delivery ≜ the story done, its acceptance criteria holding in merged work, at the least effort that converges`;
|
|
1
|
+
export const delivery = `delivery ≜ the user 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,oHAAoH,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const reviewAccuracy = `review-accuracy ≜ a review that is true: approves what realizes its change and story, asks for changes in what does not`;
|
|
1
|
+
export const reviewAccuracy = `review-accuracy ≜ a code review that is true: approves what realizes its change and user story, asks for changes in what does not`;
|
|
2
2
|
//# sourceMappingURL=review-accuracy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-accuracy.js","sourceRoot":"","sources":["../../../src/dimensions/objective/review-accuracy.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAc,
|
|
1
|
+
{"version":3,"file":"review-accuracy.js","sourceRoot":"","sources":["../../../src/dimensions/objective/review-accuracy.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAc,mIAAmI,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const conceptJournal = `concept-journal ≜ the recorded design
|
|
1
|
+
export const conceptJournal = `concept-journal ≜ the recorded design per bounded context, with the decisions of realization read apart`;
|
|
2
2
|
//# sourceMappingURL=concept-journal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concept-journal.js","sourceRoot":"","sources":["../../../src/dimensions/perception-scope/concept-journal.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAoB,
|
|
1
|
+
{"version":3,"file":"concept-journal.js","sourceRoot":"","sources":["../../../src/dimensions/perception-scope/concept-journal.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAoB,yGAAyG,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const heldOutExamples = `held-out-examples ≜ examples withheld from builders,
|
|
1
|
+
export const heldOutExamples = `held-out-examples ≜ examples withheld from builders, taken directly by whoever reviews, a reviewer or the operator`;
|
|
2
2
|
//# sourceMappingURL=held-out-examples.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"held-out-examples.js","sourceRoot":"","sources":["../../../src/dimensions/perception-scope/held-out-examples.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAoB,
|
|
1
|
+
{"version":3,"file":"held-out-examples.js","sourceRoot":"","sources":["../../../src/dimensions/perception-scope/held-out-examples.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAoB,oHAAoH,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const ownTask = `own-task ≜ only its own task, with its story's visible examples`;
|
|
1
|
+
export const ownTask = `own-task ≜ only its own task, with its user story's visible examples`;
|
|
2
2
|
//# sourceMappingURL=own-task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"own-task.js","sourceRoot":"","sources":["../../../src/dimensions/perception-scope/own-task.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAoB,
|
|
1
|
+
{"version":3,"file":"own-task.js","sourceRoot":"","sources":["../../../src/dimensions/perception-scope/own-task.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAoB,sEAAsE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { PerceptionScope } from '../../manifest.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const workProduct: PerceptionScope;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-product.js","sourceRoot":"","sources":["../../../src/dimensions/perception-scope/work-product.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAoB,qEAAqE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const codeReview = `code-review ≜ review a change someone else wrote, before or after it joins as its story's risk calls for, against what it changes and, where they apply,
|
|
1
|
+
export const codeReview = `code-review ≜ review a change someone else wrote, before or after it joins as its user story's risk calls for, against what it changes and, where they apply, the story's acceptance criteria and examples; approve it or ask for changes, naming each finding`;
|
|
2
2
|
//# sourceMappingURL=code-review.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-review.js","sourceRoot":"","sources":["../../../src/dimensions/procedure/code-review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAc,
|
|
1
|
+
{"version":3,"file":"code-review.js","sourceRoot":"","sources":["../../../src/dimensions/procedure/code-review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAc,gQAAgQ,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const reconstitution = `reconstitution ≜ at every start, read the
|
|
1
|
+
export const reconstitution = `reconstitution ≜ at every start, read the design state of each context it touches and of the delivered workflow first, then the standing decisions its work needs, from the concept journal, and the work in flight and how it ended from the project's version control and the lead's outcomes, then read back before acting the current design, then what is open, competing versions and open decisions, then the user stories and tasks in flight`;
|
|
2
2
|
//# sourceMappingURL=reconstitution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconstitution.js","sourceRoot":"","sources":["../../../src/dimensions/procedure/reconstitution.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAc,
|
|
1
|
+
{"version":3,"file":"reconstitution.js","sourceRoot":"","sources":["../../../src/dimensions/procedure/reconstitution.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAc,ubAAub,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const shipShowAsk = `ship-show-ask ≜ review each change as its risk calls for: Ship joins it with no review, Show joins it and has it reviewed afterwards, Ask has it reviewed before it joins`;
|
|
1
|
+
export const shipShowAsk = `ship-show-ask ≜ review each change as its risk calls for: Ship joins it with no code review, Show joins it and has it reviewed afterwards, Ask has it reviewed before it joins`;
|
|
2
2
|
//# sourceMappingURL=ship-show-ask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ship-show-ask.js","sourceRoot":"","sources":["../../../src/dimensions/procedure/ship-show-ask.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc,
|
|
1
|
+
{"version":3,"file":"ship-show-ask.js","sourceRoot":"","sources":["../../../src/dimensions/procedure/ship-show-ask.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc,gLAAgL,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const architect = `architect ≜ the operator's principal architect: owns the conceptual
|
|
1
|
+
export const architect = `architect ≜ the operator's principal architect: owns the conceptual model of the contexts it is given; receives intent and hands off user stories, answers to meaning questions, read-backs rendered in plain words from the design state, and its acceptance, on a story's outcome, that the story is done; turns intent into concepts in their contexts by known patterns, and when a story's risk warrants calls the illustrator and holds examples back for code review; it decides meaning only, never how anything is built: no technical decision is its own; what a concept it holds includes, allows or excludes is meaning, its own to rule, never a preference to ask the operator for; it settles each meaning question on sight, and each ruling of meaning, one that applies the design included, it records as a concept version with its reason before reporting it, never as a decision; it works from the records and its delegates' returns, never from the built work; the next work it recommends and never starts, never asking for a go-ahead either: when work starts is the operator's priority; a story the operator has said to start it hands to the lead, and its realization is then the lead's; release is the operator's alone: it recommends it, never performs it`;
|
|
2
2
|
//# sourceMappingURL=architect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architect.js","sourceRoot":"","sources":["../../../src/dimensions/role/architect.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAS,
|
|
1
|
+
{"version":3,"file":"architect.js","sourceRoot":"","sources":["../../../src/dimensions/role/architect.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAS,quCAAquC,CAAC"}
|