T1 (#1873): org definitions and templates, as approved in roles-and-rails design section 13.
The org file gets a definitions key: name to {rev, from?, role, instructions, personality?}. P1's checkComposition checks each entry, and a refusal names the definition and key, never a value.
An instance may name org:<name> instead of a template. A missing name refuses definition-missing at file validation, which launch, the writer and load all run. The launcher takes resolved.instructions as the contract when a role has no contract file.
Template hash: sha256 over the length-framed name, template JSON and contract bytes. templates() returns each hash. Nothing in roles/ changes.
Verbs import, edit, invent and remove, each definition.<verb>.console under org.hire. organizationWriter.setDefinition is the only writer of definitions. It refuses definition-in-use, a stale rev, an unchanged definition and a write with no secret check. A plain write that touches definitions refuses.
diff(org, name) compares the copy with the template as it is now and applies nothing.
CLI mosaic org definitions .... Writes go through the org's bus as the business's own human, so the bus's held-token scan runs on every write.
Not in this slice: hire as a decision and the change-decision path that edits an in-use definition (A4, next), Console screens, project agents naming org: refs.
Lane: Opus. Reviews: Sol build (changes 1, P1: the CLI wrote definitions with a no-op secret check), daybreak-blue security (approve), then a daybreak-blue re-check of the fix (approve). Rebased three times by the lane, last onto be698e602 (#1926), keeping both sides of the validateOrganizationDocument signature. Lead gate on b7c9eee60: 583 files, 6053/0, Case 1 included, plus test-config and test-task.
T1 (#1873): org definitions and templates, as approved in roles-and-rails design section 13.
- The org file gets a `definitions` key: name to `{rev, from?, role, instructions, personality?}`. P1's checkComposition checks each entry, and a refusal names the definition and key, never a value.
- An instance may name `org:<name>` instead of a template. A missing name refuses `definition-missing` at file validation, which launch, the writer and load all run. The launcher takes `resolved.instructions` as the contract when a role has no contract file.
- Template hash: sha256 over the length-framed name, template JSON and contract bytes. `templates()` returns each hash. Nothing in roles/ changes.
- Verbs import, edit, invent and remove, each `definition.<verb>.console` under `org.hire`. `organizationWriter.setDefinition` is the only writer of `definitions`. It refuses `definition-in-use`, a stale rev, an unchanged definition and a write with no secret check. A plain write that touches `definitions` refuses.
- `diff(org, name)` compares the copy with the template as it is now and applies nothing.
- CLI `mosaic org definitions ...`. Writes go through the org's bus as the business's own human, so the bus's held-token scan runs on every write.
Not in this slice: hire as a decision and the change-decision path that edits an in-use definition (A4, next), Console screens, project agents naming `org:` refs.
Lane: Opus. Reviews: Sol build (changes 1, P1: the CLI wrote definitions with a no-op secret check), daybreak-blue security (approve), then a daybreak-blue re-check of the fix (approve). Rebased three times by the lane, last onto be698e602 (#1926), keeping both sides of the validateOrganizationDocument signature. Lead gate on b7c9eee60: 583 files, 6053/0, Case 1 included, plus test-config and test-task.
Roles round 2, slice T1 (roles-and-rails design sections 4, 5 and 13).
- The org file's definitions key: each entry {rev, from?, role, instructions,
personality?} passes checkComposition; a bad entry refuses the whole file,
naming the definition and key, never a value.
- org:<name> instance references resolve to the file's definition; a missing
one refuses definition-missing, naming the instance. Template names are
unchanged.
- Template identity is the name plus a sha256 over the template JSON and its
contract; templateHashes reads the current hash for each template.
- The writer's setDefinition is the only path that changes definitions: it
checks the composition, bumps rev, refuses agent actors, and refuses
definition-in-use for a definition an instance names (A4 adds the change
decision). write() refuses organization-definitions-protected.
- Definition verbs import, edit, invent and remove need org.hire
(definition.*.console in VERB_RIGHTS) and refuse every agent caller.
- The diff read lists the primitives that changed and a line diff of the
instructions. It applies nothing.
- CLI: mosaic org definitions templates|list|show|diff|import|invent|edit|remove.
Review P1: the CLI wrote definitions with a no-op secret check. setDefinition
now refuses definition-secret-check-required when a write that adds or changes
an entry has no assertClean. New bus verbs definition.import|invent|edit|remove
run the writes for the business's human at the cli with the credential
store's assertClean; the tester, agents and readers refuse. The CLI's
definition writes call the bus and map its codes to messages that never
quote the definition.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
T1 (#1873): org definitions and templates, as approved in roles-and-rails design section 13.
definitionskey: name to{rev, from?, role, instructions, personality?}. P1's checkComposition checks each entry, and a refusal names the definition and key, never a value.org:<name>instead of a template. A missing name refusesdefinition-missingat file validation, which launch, the writer and load all run. The launcher takesresolved.instructionsas the contract when a role has no contract file.templates()returns each hash. Nothing in roles/ changes.definition.<verb>.consoleunderorg.hire.organizationWriter.setDefinitionis the only writer ofdefinitions. It refusesdefinition-in-use, a stale rev, an unchanged definition and a write with no secret check. A plain write that touchesdefinitionsrefuses.diff(org, name)compares the copy with the template as it is now and applies nothing.mosaic org definitions .... Writes go through the org's bus as the business's own human, so the bus's held-token scan runs on every write.Not in this slice: hire as a decision and the change-decision path that edits an in-use definition (A4, next), Console screens, project agents naming
org:refs.Lane: Opus. Reviews: Sol build (changes 1, P1: the CLI wrote definitions with a no-op secret check), daybreak-blue security (approve), then a daybreak-blue re-check of the fix (approve). Rebased three times by the lane, last onto
be698e602(#1926), keeping both sides of the validateOrganizationDocument signature. Lead gate onb7c9eee60: 583 files, 6053/0, Case 1 included, plus test-config and test-task.Roles round 2, slice T1 (roles-and-rails design sections 4, 5 and 13). - The org file's definitions key: each entry {rev, from?, role, instructions, personality?} passes checkComposition; a bad entry refuses the whole file, naming the definition and key, never a value. - org:<name> instance references resolve to the file's definition; a missing one refuses definition-missing, naming the instance. Template names are unchanged. - Template identity is the name plus a sha256 over the template JSON and its contract; templateHashes reads the current hash for each template. - The writer's setDefinition is the only path that changes definitions: it checks the composition, bumps rev, refuses agent actors, and refuses definition-in-use for a definition an instance names (A4 adds the change decision). write() refuses organization-definitions-protected. - Definition verbs import, edit, invent and remove need org.hire (definition.*.console in VERB_RIGHTS) and refuse every agent caller. - The diff read lists the primitives that changed and a line diff of the instructions. It applies nothing. - CLI: mosaic org definitions templates|list|show|diff|import|invent|edit|remove.