Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/boatstack-update/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
interface:
display_name: "Boatstack Update"
short_description: "Apply a checksum-verified Boatstack update."
default_prompt: "Use $boatstack-update to follow the authority-preserving Boatstack V2 driver."
default_prompt: "Use $boatstack-update to follow the authority-preserving Boatstack driver."
policy:
allow_implicit_invocation: false
6 changes: 3 additions & 3 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
docs/architecture/boatstack-v2-*.md text eol=lf
docs/architecture/boatstack-v2-*.mmd text eol=lf
docs/architecture/boatstack-v2-*.json text eol=lf
docs/architecture/boatstack-*.md text eol=lf
docs/architecture/boatstack-*.mmd text eol=lf
docs/architecture/boatstack-*.json text eol=lf
docs/architecture/boatstack-standard-flow.mmd text eol=lf
6 changes: 3 additions & 3 deletions .github/tests/test_detached_supervision.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""End-to-end tests for the V2 detached identity and guard boundary."""
"""End-to-end tests for the detached identity and guard boundary."""

from __future__ import annotations

Expand Down Expand Up @@ -136,7 +136,7 @@ def test_attach_and_detach_transfer_only_controller_authority(self) -> None:
self.assertEqual(self.porcelain(), before)
self.assertEqual(attached["snapshot"]["invocation"]["topology"], "detached")
self.assertEqual(attached["receipt"]["transition_id"], "repository.attach")
bindings = list((self.state_root / "boatstack" / "v2").rglob("binding.json"))
bindings = list((self.state_root / "boatstack").rglob("binding.json"))
self.assertEqual(len(bindings), 1)
binding = json.loads(bindings[0].read_text())
self.assertEqual(binding["topology"], "detached")
Expand Down Expand Up @@ -166,7 +166,7 @@ def test_two_clones_never_share_a_detached_binding_alias(self) -> None:
two = self.attach(clone)
self.assertEqual(one["snapshot"]["invocation"]["repository_id"], two["snapshot"]["invocation"]["repository_id"])
self.assertNotEqual(one["snapshot"]["invocation"]["git_common_id"], two["snapshot"]["invocation"]["git_common_id"])
bindings = list((self.state_root / "boatstack" / "v2").rglob("binding.json"))
bindings = list((self.state_root / "boatstack").rglob("binding.json"))
self.assertEqual(len(bindings), 2)

def test_detached_installation_and_engaged_guard_use_the_same_kernel(self) -> None:
Expand Down
14 changes: 7 additions & 7 deletions .github/tests/test_repository_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -677,9 +677,9 @@ def test_documented_cli_verbs_are_registered_v2_surfaces(self) -> None:
def test_catalog_and_generated_artifacts_match_the_executable_registry(self) -> None:
attributes = (REPO / ".gitattributes").read_text().splitlines()
for pattern in (
"docs/architecture/boatstack-v2-*.md text eol=lf",
"docs/architecture/boatstack-v2-*.mmd text eol=lf",
"docs/architecture/boatstack-v2-*.json text eol=lf",
"docs/architecture/boatstack-*.md text eol=lf",
"docs/architecture/boatstack-*.mmd text eol=lf",
"docs/architecture/boatstack-*.json text eol=lf",
"docs/architecture/boatstack-standard-flow.mmd text eol=lf",
):
self.assertIn(pattern, attributes)
Expand All @@ -705,20 +705,20 @@ def test_catalog_and_generated_artifacts_match_the_executable_registry(self) ->
).stdout
self.assertEqual(
markdown,
(REPO / "docs" / "architecture" / "boatstack-v2-transition-catalog.md").read_text(),
(REPO / "docs" / "architecture" / "boatstack-transition-catalog.md").read_text(),
)
self.assertEqual(
mermaid,
(REPO / "docs" / "architecture" / "boatstack-v2-transition-catalog.mmd").read_text(),
(REPO / "docs" / "architecture" / "boatstack-transition-catalog.mmd").read_text(),
)
self.assertEqual(
standard_flow,
(REPO / "docs" / "architecture" / "boatstack-standard-flow.mmd").read_text(),
)
self.assertEqual(standard_flow.count("<br/>"), 30)
for name, rendered in (
("boatstack-v2-locus-safety.json", locus_safety),
("boatstack-v2-locus-liveness.json", locus_liveness),
("boatstack-locus-safety.json", locus_safety),
("boatstack-locus-liveness.json", locus_liveness),
):
checked = (REPO / "docs" / "architecture" / name).read_text()
self.assertEqual(rendered, checked)
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ coding-agent concepts live in this domain layer, not in the general kernel.

Boatstack currently compiles 63 registered transitions into one executable
control graph. The complete list is generated from the registry in the
[transition catalog](docs/architecture/boatstack-v2-transition-catalog.md).
[transition catalog](docs/architecture/boatstack-transition-catalog.md).

### Kernel

Expand Down Expand Up @@ -275,9 +275,9 @@ boatstack/sdk/ public Go protocol client
docs/architecture/ executable contracts and generated evidence
```

Start with the [architecture specification](docs/architecture/boatstack-v2-kernel.md)
Start with the [architecture specification](docs/architecture/boatstack-kernel.md)
for the full internal model. The generated [StandardFlow graph](docs/architecture/boatstack-standard-flow.mmd)
and [Mermaid catalog](docs/architecture/boatstack-v2-transition-catalog.mmd)
and [Mermaid catalog](docs/architecture/boatstack-transition-catalog.mmd)
come from the same executable registry used at runtime.

## Develop
Expand Down
Loading
Loading