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
1 change: 0 additions & 1 deletion .github/tests/test_repository_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ def test_current_public_surface_is_boatstack_owned(self) -> None:
value = path.read_text()
for phrase in forbidden:
self.assertNotIn(phrase, value, path)
self.assertTrue((REPO / "IMPORT_PROVENANCE.json").is_file())
self.assertFalse((REPO / "UPSTREAM.json").exists())

def test_document_links_claims_and_assets_are_valid(self) -> None:
Expand Down
436 changes: 0 additions & 436 deletions IMPORT_PROVENANCE.json

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,4 +212,4 @@ The installer previews generated paths, verifies the platform helper, offers opt

Boatstack is an open-source research prototype. Its workflow and enforcement behavior are tested. But the current record does not prove improved delivery success. The next evaluation is a paired feature benchmark with the same model, task, and budget.

Boatstack is developed directly in this repository. The immutable provenance of the final historical import is recorded in [`IMPORT_PROVENANCE.json`](IMPORT_PROVENANCE.json).
Boatstack is developed directly in this repository.
136 changes: 0 additions & 136 deletions boatstack/BUG-worktree-delivery-state.md

This file was deleted.

2 changes: 1 addition & 1 deletion boatstack/compiled_artifact_resolution_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func TestFeatureEvidencePathResolvesBothLayouts(t *testing.T) {
}

// TestRecordGateResolvesCompiledEvidenceLedger is the proof of fix: a delivery whose
// ledger lives ONLY at compiled/evidence.md (the taxweave state) must gate cleanly
// ledger lives ONLY at compiled/evidence.md (the legacy repository state) must gate cleanly
// with no explicit --evidence. This fails on the pre-fix recorder, which resolved
// only the feature root.
func TestRecordGateResolvesCompiledEvidenceLedger(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion boatstack/next_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ func TestFeaturePlanCandidatesExcludesLockedAndShippedFeatures(t *testing.T) {
}
}

// TestResolveNextIgnoresShippedFeatureCandidates reproduces the taxweave scenario
// TestResolveNextIgnoresShippedFeatureCandidates reproduces the linked-worktree scenario
// through ResolveNext: one genuinely open feature plus several shipped dirs whose
// state.json was destroyed by worktree cleanup must resolve to the single open
// candidate, not AMBIGUOUS.
Expand Down
2 changes: 1 addition & 1 deletion boatstack/release.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func isReleaseBearingPath(value string) bool {
return false
}
for _, exact := range []string{
".gitignore", "CONTRIBUTING.md", "README.md", "IMPORT_PROVENANCE.json",
".gitignore", "CONTRIBUTING.md", "README.md",
"project.example.json",
} {
if path == exact {
Expand Down
2 changes: 1 addition & 1 deletion boatstack/release_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
func TestClassifyReleasePaths(t *testing.T) {
documentation := []string{
"README.md", "docs/getting-started.md", "assets/boatstack-mark.svg",
"release-notes/2026-07-18-copy.md", "IMPORT_PROVENANCE.json",
"release-notes/2026-07-18-copy.md",
"boatstack/export_test.go", "boatstack/testdata/example.txt",
".github/workflows/sync-upstream.yml", "automation/release-policy.md",
}
Expand Down
2 changes: 1 addition & 1 deletion boatstack/repair_state_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"testing"
)

// writeMalformedDraft models the taxweave-roles failure: an agent hand-authored a
// writeMalformedDraft models a legacy failure: an agent hand-authored a
// feature directory with a prose plan.md but never let the helper register it, so
// there is no plan.lock.json and no delivery state. CheckPlan fails on it, which
// the guard escalates to INVALID_STATE and denies every product mutation.
Expand Down
2 changes: 1 addition & 1 deletion boatstack/runtime_cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@ func HydrateWorktree(repoPath string) error {
// Because the guard downloads and runs the exact pinned release before calling
// this, the running binary equals the repo's committed pin by construction. The
// verifyGeneratedRuntime gate refuses to populate a slot for any other version,
// so hydration can never write a mislabeled runtime (the taxweave incident's
// so hydration can never write a mislabeled runtime (the original incident's
// invariant), and installCommandRuntime's own post-write verify+rollback is the
// backstop. The operation is idempotent and safe under concurrent first use.
func RunHydrateRuntime(repoPath string) error {
Expand Down
2 changes: 1 addition & 1 deletion boatstack/visual_publisher_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ func TestOriginRepoSlugParsesSSHAndHTTPS(t *testing.T) {
repo := t.TempDir()
runGit(t, repo, "init", "-b", "main")
cases := map[string]struct{ owner, name string }{
"git@github.com:millennialcpa/taxweave.git": {"millennialcpa", "taxweave"},
"git@github.com:example-org/sample-app.git": {"example-org", "sample-app"},
"https://github.com/operatorstack/boatstack.git": {"operatorstack", "boatstack"},
"https://github.com/operatorstack/boatstack": {"operatorstack", "boatstack"},
}
Expand Down
2 changes: 1 addition & 1 deletion docs/evidence-engineered-coding.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,6 @@ Delivery and system improvement also remain separate. A failed task may suggest

## What is evidence-backed

The current moves were derived from an audited benchmark corpus and product-repository studies. Current implementation and verification evidence lives in this repository; the final historical import is recorded in `IMPORT_PROVENANCE.json`.
The current moves were derived from an audited benchmark corpus and product-repository studies. Current implementation and verification evidence lives in this repository.

The evidence supports specific failure mechanisms and guardrails. It does not establish that Boatstack is optimal, that control-theory notation proves software quality, or that one workflow dominates every team. Those are evaluation questions, so the distribution preserves measurements, provenance, gaps, and negative results.
4 changes: 2 additions & 2 deletions docs/research-and-design.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The proposed product is not a large prompt and not a Codex-, Cursor-, Claude-, o

The implementation is in [`boatstack/`](../boatstack/). Its exporter generates Cursor rules/commands, Claude Code and Codex skills, and a GitHub PR template from one source.

The public [Boatstack](https://github.com/operatorstack/boatstack) repository is the source of product and runtime truth. The README, guides, tests, installable skill, and Go helper change together through ordinary reviewed pull requests. A machine-readable public claim record keeps homepage wording tied to observations, safeguards, tests, and explicit evaluation status. The repository contract checks these surfaces directly, while the cross-platform runtime jobs verify the helper and installers. `IMPORT_PROVENANCE.json` preserves the immutable record of the final historical import; it has no publishing authority.
The public [Boatstack](https://github.com/operatorstack/boatstack) repository is the source of product and runtime truth. The README, guides, tests, installable skill, and Go helper change together through ordinary reviewed pull requests. A machine-readable public claim record keeps homepage wording tied to observations, safeguards, tests, and explicit evaluation status. The repository contract checks these surfaces directly, while the cross-platform runtime jobs verify the helper and installers.

## Outcome sizing and where value emerges

Expand Down Expand Up @@ -100,7 +100,7 @@ Those are **summary-only evidence** in this design. They are not represented as
| Mid-run aggregates changed direction | Qwen board interpretation moved as task coverage deepened | Compare paired completed coverage and uncertainty, not early aggregate rank |
| External failure invited destructive recovery | A sanitized partial schema apply failure led to an invented reset path before review removed it | Treat recovery authority as a deterministic boundary: preserve state, diagnose read-only, transact or fix forward |

Public evidence: [`benchmark-corpus-audit.md`](benchmark-corpus-audit.md) and [`benchmark-submission-audit.md`](benchmark-submission-audit.md). `IMPORT_PROVENANCE.json` records the final historical import that supplied the earlier private research references.
Public evidence: [`benchmark-corpus-audit.md`](benchmark-corpus-audit.md) and [`benchmark-submission-audit.md`](benchmark-submission-audit.md).

The irreversible-operation boundary is a **PROPOSED** Move. The incident supports the target failure mechanism, while the benchmark campaign supports deterministic enforcement over stronger wording. Neither proves the new guard's net effect. Promotion requires a paired unguarded baseline, destructive and safe corpora, real host events, bounded latency, secret-free denials, and no workflow regression.

Expand Down
3 changes: 3 additions & 0 deletions release-notes/2026-08-09-remove-obsolete-worktree-note.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Obsolete worktree note is removed

Boatstack no longer includes an obsolete worktree troubleshooting note, its supporting metadata, or project-specific labels in test fixtures. Runtime behavior does not change.