Skip to content

docs: consolidated documentation PRs (#178–#189) — validated & corrected - #190

Merged
PhysShell merged 37 commits into
mainfrom
claude/pr-docs-review-validation-1wat02
Jul 8, 2026
Merged

docs: consolidated documentation PRs (#178–#189) — validated & corrected#190
PhysShell merged 37 commits into
mainfrom
claude/pr-docs-review-validation-1wat02

Conversation

@PhysShell

@PhysShell PhysShell commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Что и зачем

Консолидирует все 12 открытых документационных PR (#178, #179, #180, #181, #182, #183, #184, #185, #186, #187, #188, #189) в один, с валидацией и корректировками. Семь PR одновременно претендовали на номер P-026 (и один на P-027) — перенумеровано в P-026…P-033 по дате создания PR, индексы docs/proposals/README.md и docs/ROADMAP.md обновлены. Каждый документ проверен против кода и соседних репозиториев (007, OwnAudit); найденные фактические ошибки исправлены.

Ключевые корректировки сверх простого слияния:

  • P-010: источник истины для OWN-кодов — ownlang/diagnostics.py (TITLES), а не spec/Diagnostics.md (утверждение было инвертировано);
  • P-029: битая ссылка на несуществующий 007/docs/reflect.md007/docs/agent-memory-layer.md; словарь «reflect» приведён к фактически лёгшему дизайну;
  • P-030: pytest-скетч заменён на stdlib-раннер (тест-суита репо zero-dependency); синтетический OwnLang-пример исправлен — прежний не парсился грамматикой ownlang/parser.py;
  • P-032/P-033 (чат-вставки): нормализованы под конвенции серии (заголовки, код-фенсы); P-033 переформулирован — модуль предназначен аудируемому legacy-приложению, а не самому анализатору;
  • agent-capability-layer §8: Sandboy потребляет rendered TOML (не JSON); статус Sandboy исправлен Built → Spiked (authored, not compiled) — согласовано с sandboy/README.md и 007 zero-trust §9;
  • три идентичные копии agentic-coding-discipline-proposal.md (по 1103 строки в каждом репо) сведены к канонику здесь, в OwnAudit/007 — указатели;
  • кросс-репо ссылки приведены к неломающемуся виду (plain-path вместо относительных ../../own.net/...).

Замечание: на main существует старая коллизия P-015 (P-015-configuration-surface.md и P-015-reachability-evidence.md) — здесь не трогалась, стоит разрулить отдельным PR.

Парные консолидированные PR: OwnAudit и 007 (те же ветки claude/pr-docs-review-validation-1wat02); ссылка 007 →docs/agent-run-triage.md в OwnAudit оживёт после мержа парного PR.

Тип изменения

  • feat — новая возможность
  • fix — исправление бага
  • docs — документация
  • refactor / chore / test / ci — без изменения поведения

Как проверено

  • python tests/run_tests.py
  • ruff check . и mypy
  • селфтесты затронутых скриптов (python scripts/<...>.py --selftest)

Docs-only. Прогнан механический верификатор по всем изменённым файлам: относительные markdown-ссылки резолвятся, код-фенсы сбалансированы, конфликт-маркеров нет; каждый документ прошёл содержательную валидацию против кода (multi-agent review, ~90 применённых правок).

Связанные issue

Нет. Заменяет PR #178#189 (закрыты с указателем сюда).

Чеклист

  • изменение покрыто тестом/селфтестом (или объяснено, почему нет) — docs-only, тестового контура для proposals нет
  • README/docs обновлены при необходимости — индексы proposals/README.md и ROADMAP.md обновлены
  • коммиты в conventional-commit стиле (feat:, fix:, docs: …)

🤖 Generated with Claude Code

https://claude.ai/code/session_016tY7jvPGyDWmWYjrRHWPnM


Generated by Claude Code

Summary by CodeRabbit

  • New Features

    • Added several new proposal and roadmap entries covering resource lifecycle checks, dependency reduction, agent guidance organization, robustness testing, project resource models, architecture facts, and probabilistic data structures.
    • Introduced a new proposal for disciplined agentic coding workflows and a new strictness profile concept.
  • Documentation

    • Updated roadmap and proposal indexes to reflect the expanded planning backlog.
    • Clarified policy and enforcement guidance, including how policy files are authored and used.

claude and others added 30 commits July 4, 2026 20:12
…ctness)

A framing/packaging proposal, not a new engine: front the existing fleet's
findings (lifetime/resource, typestate/obligations, config drift) under one
strictness narrative + a single score aimed at the F#/Rust-refugee audience.

Accepts the strictness-audit framing and keeps ownership/lifetime as the moat;
explicitly rejects an Option/Result migration linter and a generic nullable nag
as the SAST fight the charter refuses. Records the honest gap: a whole-solution
score depends on the not-yet-general Roslyn extractor (P-001/P-014), so the first
cut runs over the audit target or labels dimensions NO-TOOL rather than faking a
clean pass. Adds the P-026 index row.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNzzRHgdDbue9LhWyLTui3
…te detection

Distills a React-useEffect critique into the two ideas that generalize
past React: modeling a resource's lifecycle as one explicit state
instead of boolean/nullable soup, and detecting stale async writes
where a value read before an await gates a write committed after it.
Cross-references what P-004/P-005/P-020/P-021 already cover so this
only adds the two genuinely new diagnostics (ASYNC050-052) rather than
duplicating cleanup/blocking-wait/async-void checks.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L5JLaXfYrZYrt4JG1fYJFA
…thod hazards

CodeRabbit review on #179: the sketch mixed a type-scoped fact
(sibling status fields) into the per-method async_methods entries.
Give it its own types[] fact block so the extractor contract for
ASYNC050 (type-level) stays separate from ASYNC051/052 (per-method).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L5JLaXfYrZYrt4JG1fYJFA
Evidence-only "you don't need this abstraction" checks, inspired by the
you-dont-need/You-Dont-Need meta-list but scoped away from opinion: each
finding names a call site with zero customization evidence (a trivial
AutoMapper 1:1 profile, a MediatR handler with one impl and no pipeline
behaviours) rather than judging a library's presence. Report-only,
never a build gate; bounded against P-021 (async elision already owned
by ASYNC040) and P-023 (Own.Arch gates forbidden structure, this flags
redundant structure).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NNLSE5z4V92RwdHHF1mW45
… reuse

Codex review on #180 caught it: the extractor's DiTypeName collapses
IRequestHandler<Foo,Bar> to the bare IRequestHandler identifier, so the
existing P-006 services[] graph can't distinguish per-request-type
implementation counts once a project has more than one MediatR handler.
Correct the MVP scope and sketch to require a small additive extractor
change that preserves closed generic arguments for MediatR marker
interfaces, instead of claiming YDN002 rides the graph as-is.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NNLSE5z4V92RwdHHF1mW45
Defines the reviewed, structured destination for AGENTS.md content and
learned-rule promotions: split AGENTS.md into an index over .agents/*.md
satellite files, adopt .007/gate.toml as the machine-readable gate
manifest, and fix a promotion contract (provenance + normal PR review,
no auto-write). Companion to the reflect/learning-engine design proposed
in the sibling private repo 007 (docs/reflect.md there), which is one
possible source of promotions into this layer.

Claude-Session: https://claude.ai/code/session_01RpcmoaVnkTzWmzEJjN3Hrq
Appends §8 to the Owen Gate design note: TOML's lack of merge semantics makes
multi-profile policy (no-net / worktree-only / windows exec) copy-paste-prone,
where a forgotten override silently reopens a denied capability. CUE's
unification model turns a conflicting override into a compile error instead.
Records Nickel as runner-up and Jsonnet/Dhall/HCL as considered-and-rejected,
and reaffirms WIT/Wasmtime stays the untrusted-input plugin boundary, not a
policy-authoring surface — cross-referenced from 007's zero-trust-framework.md.
sandboy/README.md's policy.example.toml is the plain, boring artifact Sandboy
actually reads; adds a pointer to where the composable CUE source and the
cue export --out toml render step are documented (007's zero-trust-framework.md),
so the two stay clearly separated instead of drifting apart in two repos.
…n contract

The "Wiring into 007" section already describes the per-step wrap; point it
at 007/docs/loop-canvas.md, where the same slot is framed as the canvas
Actions/Limits/Observability fields. Docs only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VNgUjrvwqwtXqe8URbJaQN
Codex review (PR #183): the wiring note described `sandboy --report <json>`
as if available, but `parse_args` accepts only `run`/`--policy`/`--` and
rejects any other flag (exit 2). Mark both integration hooks (`--report`
on sandboy, `sandbox_policy` on 007's GateStep) explicitly as Floor-1 work
that does not exist yet, and note the current stderr enforcement status.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VNgUjrvwqwtXqe8URbJaQN
Keep the two sides of the contract consistent: the 007-side bullet framed
`sandbox_policy` as plain "forward-compatible", but 007/docs/loop-canvas.md
now requires it to fail closed (schema bump) since silent unknown-field
tolerance fails open on a security control.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VNgUjrvwqwtXqe8URbJaQN
Reorganize the type-disciplines proposal under semantic primitives,
algebraic domain modeling, state/lifetime discipline, tooling, and
future — adding discriminated unions/exhaustive matching/Option/Result
(previously undocumented anywhere in the repo), strongly typed IDs,
ValueTask/single-use constraints, and an elaborated tooling section
(source generators, code fixes, generated docs, OwnIR facts). Existing
typestate/ownership items are cross-referenced to P-004/005/006/007
instead of duplicated, and a diagnostic-prefix open question (`TYP0xx`
vs `[type: …]` tag) is recorded against the DI/EFF/OBL precedent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ChcHzqtYRaVGiHmL2dCQ8
Propose using the Big List of Naughty Strings (BLNS) as a pinned
fixture corpus to crash-test the extractor/lexer/parser, the
JSON/SARIF emitters, and the CLI against adversarial input text —
motivated by the cp1251 console crash OwnAudit already hit once.
Externalizes the compiled-in resource-kind table
(ownlang/ownir.py _prelude_resources) into a declarative,
symbol-resolved project config so a codebase can teach the
extractor its own acquire/release conventions (e.g.
ConnectionFactory.Open()/Connection.Close()) without a new
hardcoded classifier in Program.cs. Grounded against P-014's
semantic-resolution discipline and P-015/P-024's precedents so
it stays a fact producer, not a second detection DSL.
CodeRabbit: the row only named extractor/serializers/CLI but the
proposal also covers lexer/parser and config discovery.
CodeRabbit: Layer 1 named its acceptable failure shapes but Layer 3
(CLI/path/future config) didn't. Name the I/O exceptions that count as
an honest rejection, mirroring cmd_explain's existing OSError catch,
and flag that ownlang/__main__.py's _read() catches nothing today —
so a bad path is a live candidate for the very first red case, not a
hypothetical.
…ew ones

Codex review on #186 caught it: the resource discriminator and its
[resource: ...] tag are a closed, fixed-mapping vocabulary
(ownlang/ownir.py::_KNOWN_RESOURCE_KINDS/_RESOURCES, pinned by
spec/ownir.schema.json) that load() rejects unknown values for. v0
now explicitly binds project model entries to an existing
discriminator instead of claiming a free-text kind/tag, with the
precision loss and the scoped-out follow-up (an additive
display_kind field) called out as Open Question 6.
…t-5qsy3m' into claude/pr-docs-review-validation-1wat02
…-yivuv3' into claude/pr-docs-review-validation-1wat02

# Conflicts:
#	docs/proposals/README.md
…7vs9' into claude/pr-docs-review-validation-1wat02

# Conflicts:
#	docs/ROADMAP.md
#	docs/proposals/README.md
…p68' into claude/pr-docs-review-validation-1wat02

# Conflicts:
#	docs/proposals/README.md
…b0vgrw' into claude/pr-docs-review-validation-1wat02
…ugo5y' into claude/pr-docs-review-validation-1wat02
…-oe7qd7' into claude/pr-docs-review-validation-1wat02
…0j6' into claude/pr-docs-review-validation-1wat02

# Conflicts:
#	docs/proposals/README.md
…f' into claude/pr-docs-review-validation-1wat02

# Conflicts:
#	docs/proposals/README.md
…x4iut' into claude/pr-docs-review-validation-1wat02
PhysShell added 5 commits July 8, 2026 11:46
…el PRs

Seven proposals landed in parallel branches all claiming P-026 (and one
P-027). Renumber by PR creation order, keeping P-026 for the earliest:

- P-026 csharp-strictness-retrofit (unchanged, PR #178)
- P-027 resource-state-machine (PR #179)
- P-028 unneeded-dependency-profile (PR #180)
- P-029 agent-memory-layer (PR #181)
- P-030 naughty-strings-testing (PR #185)
- P-031 resource-model-files (PR #186)
- P-032 own-arch-facts (PR #188)
- P-033 probabilistic-data-structures (PR #189)

Update headings, proposals/README.md index rows (adding missing P-032/P-033
rows), and ROADMAP.md links. Normalize the two chat-pasted proposals
(P-032, P-033) to the standard proposal header and replace live-PR URLs
with in-repo links.
Multi-pass review of the consolidated docs (per-file validation against the
code plus cross-repo consistency checks). Highlights:

- P-010: spec/Diagnostics.md is derived; ownlang/diagnostics.py TITLES is the
  source of truth for OWN codes — inverted claim fixed
- P-026: add the missing local-immutability dimension so the illustrative
  report's 4/6 coverage matches the dimensions table
- P-027: drop 'existing' for P-021's planned async_methods module; repoint a
  wrong P-021 open-question citation; attribute the plain-structs lowering
  rule to P-010 only
- P-029: fix broken 007 companion reference (docs/reflect.md ->
  docs/agent-memory-layer.md), align 'reflect' vocabulary with the landed
  design, refresh stale proposal counts
- P-030: replace the pytest-based sketch with a stdlib runner matching the
  zero-dependency suite; make the synthesized OwnLang wrapper actually parse
  per ownlang/parser.py grammar
- P-032/P-033: fence all code blocks, promote plain-text section titles to
  headings, backtick quoted identifiers; P-033 reframed to target the audited
  legacy app, not the analyzer (source: own.diagnostics.sketches)
- agentic-coding-discipline: soften 'o7 run works' to match 007 TODO.md
  (scaffolded, not yet exercised); add part-2 divider heading
- agent-capability-layer §8: Sandboy consumes rendered TOML (not JSON);
  sandboy status corrected Built -> Spiked (authored, not compiled)
- sandboy/README: replace live 007 blob URL with plain cross-repo path; gate
  steps described as bare bash (bypassPermissions applies to the agent phase)
- ROADMAP: index rows for all new proposals P-026..P-033
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@PhysShell, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 47 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 3aa17591-da66-4ded-adc8-5fed27938880

📥 Commits

Reviewing files that changed from the base of the PR and between a5c0c97 and fad5248.

📒 Files selected for processing (7)
  • docs/agentic-coding-discipline-proposal.md
  • docs/notes/agent-capability-layer.md
  • docs/proposals/P-010-type-disciplines.md
  • docs/proposals/P-026-csharp-strictness-retrofit.md
  • docs/proposals/P-030-naughty-strings-testing.md
  • docs/proposals/P-032-own-arch-facts.md
  • docs/proposals/P-033-probabilistic-data-structures.md
📝 Walkthrough

Walkthrough

This PR adds eight new design proposal documents (P-026 through P-033), updates ROADMAP.md and proposals/README.md indexes, substantially revises the P-010 type-disciplines proposal, updates docs/notes/agent-capability-layer.md status and adds a CUE policy addendum, adds a new agentic-coding-discipline proposal document, and updates sandboy/README.md.

Changes

Documentation and Proposal Updates

Layer / File(s) Summary
Roadmap and index updates
docs/ROADMAP.md, docs/proposals/README.md
Adds P-027 to the P2 priority row and inserts index rows for P-026 through P-033.
Agentic coding discipline proposal
docs/agentic-coding-discipline-proposal.md
Adds a new large document defining agentic coding principles and their mapping to an executable 007 harness (task contracts, gates, evidence packs, judge verdicts, trust levels).
Agent capability layer status & policy notes
docs/notes/agent-capability-layer.md
Downgrades runner enforcement status from Built to Spiked and adds a CUE-based owen.policy authoring addendum.
P-010 type disciplines revision
docs/proposals/P-010-type-disciplines.md
Expands scope, tooling pillars, examples, deferred catalog, and open questions for the existing proposal.
P-026 strictness retrofit
docs/proposals/P-026-csharp-strictness-retrofit.md
New proposal for a strictness-scoring reporting profile over existing audit findings.
P-027 resource state machine
docs/proposals/P-027-resource-state-machine.md
New proposal defining ASYNC050/051/052 diagnostics for async resource lifecycle hazards.
P-028 unneeded dependency profile
docs/proposals/P-028-unneeded-dependency-profile.md
New proposal defining YDN001/YDN002/YDN010 findings for unneeded dependency ceremony.
P-029 agent memory layer
docs/proposals/P-029-agent-memory-layer.md
New proposal defining a .agents/ directory and .007/gate.toml promotion contract.
P-030 naughty-strings testing
docs/proposals/P-030-naughty-strings-testing.md
New proposal defining BLNS-driven crash testing scope across parsing, serialization, and CLI.
P-031 resource model files
docs/proposals/P-031-resource-model-files.md
New proposal defining YAML-declared resource acquire/release model files.
P-032 Own.Arch facts
docs/proposals/P-032-own-arch-facts.md
New proposal defining a deterministic architecture fact/intent/rule evaluation pipeline.
P-033 probabilistic data structures
docs/proposals/P-033-probabilistic-data-structures.md
New proposal defining a probabilistic data-structures diagnostics module.
Sandboy README updates
sandboy/README.md
Clarifies the TOML policy artifact/CUE workflow and documents future sandbox_policy and --report hooks.

Estimated code review effort: 2 (Simple) | ~15 minutes

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: consolidating and correcting documentation PRs.
Description check ✅ Passed The description follows the required template and covers what changed, type, verification, related issues, and checklist items.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/pr-docs-review-validation-1wat02

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a5c0c97ab1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

# resource emit_*/kind members (a `let` rhs never takes a string),
# so a benign entry parses cleanly and only the naughty content is
# under test — the wrapper follows the run_tests.py PRELUDE shape.
src = f'module M\nresource R {{ acquire a release r emit_type "{naughty}" }}\n'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Escape BLNS entries before embedding them

For BLNS entries that contain " or Own escape sequences, this f-string injects the payload directly inside the surrounding Own string literal. Those cases either become LexError/ParseError that the sketch treats as a passing “honest rejection,” or they are decoded into different text before reaching the parser/serializer, so many of the corpus strings this robustness pack is meant to exercise would be silently skipped or mutated. Escape the payload for Own string syntax before embedding it, or construct the test input without reparsing a raw string literal.

Useful? React with 👍 / 👎.

Codex review on the consolidated PR: entries containing quotes or
backslashes injected raw into the f-string would terminate the Own string
literal early (counted as an 'honest rejection') or be decoded into
different text, silently skipping exactly the corpus rows the pack is
meant to exercise. Escape \\ and " before embedding, and note the
complementary raw-lexer path that still exercises the unescaped entries.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (1)
docs/proposals/P-033-probabilistic-data-structures.md (1)

76-84: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Specify whether the bitmap ops mutate or return new indexes.

And / Or / Except are ambiguous here. If they mutate, the names should say so; if they return new indexes, the proposal should say that explicitly. Right now the ownership and aliasing semantics are unclear.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/proposals/P-033-probabilistic-data-structures.md` around lines 76 - 84,
Clarify the ownership semantics of IBitmapIndex operations by stating explicitly
in the proposal whether And, Or, and Except mutate the current bitmap or return
a new index. Update the interface documentation around IBitmapIndex and its
methods so the behavior is unambiguous, and if these methods are intended to be
non-mutating, say that they produce new indexes rather than modifying the
receiver.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/agentic-coding-discipline-proposal.md`:
- Around line 59-76: The fenced example blocks in the proposal are missing
language tags, which causes markdownlint MD040 and makes the samples harder to
read. Update the fenced code blocks in this document to include an appropriate
language hint, and keep the surrounding content unchanged; use the existing
example sections as the target locations.

In `@docs/notes/agent-capability-layer.md`:
- Line 115: The acceptance gate text is inconsistent with the documented build
mode for Sandboy validation. Update the “Runner enforcement” note to match the
build command used in sandboy/README.md, or explicitly call out that this phase
intentionally uses a debug build; keep the wording consistent in the note that
references the gate step and the Sandboy validation path.

In `@docs/proposals/P-010-type-disciplines.md`:
- Around line 77-80: Narrow the lowering claim in this paragraph so it does not
promise the same implementation for all pillars. Update the wording around the
affected sentence to separate brands/refinements/units from unions and
protocols, using the unique concepts in this proposal section to reflect that
unions are modeled as closed hierarchies/closed struct unions and protocols as
consume-on-transition typestate rules, rather than all being “plain
structs/records plus smart constructors.” Keep the
analyzer-versus-second-type-checker point, but make the lowering description
match the later sections’ distinct models.

In `@docs/proposals/P-026-csharp-strictness-retrofit.md`:
- Around line 75-93: The strictness score section needs an explicit
one-bucket-per-finding rule so the same finding cannot be counted across
multiple dimensions. Update the strictness model description around the weighted
sum and dimensions table to define a primary-dimension or precedence rule for
each finding, and state how reclassification should move a finding between
buckets without changing the total inconsistently. Keep the guidance aligned
with the existing “strictness score” and “dimensions” wording so the overlap
behavior is unambiguous.

In `@docs/proposals/P-032-own-arch-facts.md`:
- Around line 104-106: The architecture intent-model contract is split between
JSON and YAML, so align the proposals to a single canonical source of truth.
Update the wording in P-032’s “Architecture intent model” section and the P-023
reference to consistently name either architecture.intent.json or
architecture.rules.yaml, and clarify whether any other format is only a
generated export. Use the proposal sections that define the intent model and
hand-written source of truth to keep the contract unambiguous.

---

Nitpick comments:
In `@docs/proposals/P-033-probabilistic-data-structures.md`:
- Around line 76-84: Clarify the ownership semantics of IBitmapIndex operations
by stating explicitly in the proposal whether And, Or, and Except mutate the
current bitmap or return a new index. Update the interface documentation around
IBitmapIndex and its methods so the behavior is unambiguous, and if these
methods are intended to be non-mutating, say that they produce new indexes
rather than modifying the receiver.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 86ae7605-4616-40a4-a12b-bab41e97a037

📥 Commits

Reviewing files that changed from the base of the PR and between 4d48aeb and a5c0c97.

📒 Files selected for processing (14)
  • docs/ROADMAP.md
  • docs/agentic-coding-discipline-proposal.md
  • docs/notes/agent-capability-layer.md
  • docs/proposals/P-010-type-disciplines.md
  • docs/proposals/P-026-csharp-strictness-retrofit.md
  • docs/proposals/P-027-resource-state-machine.md
  • docs/proposals/P-028-unneeded-dependency-profile.md
  • docs/proposals/P-029-agent-memory-layer.md
  • docs/proposals/P-030-naughty-strings-testing.md
  • docs/proposals/P-031-resource-model-files.md
  • docs/proposals/P-032-own-arch-facts.md
  • docs/proposals/P-033-probabilistic-data-structures.md
  • docs/proposals/README.md
  • sandboy/README.md

Comment thread docs/agentic-coding-discipline-proposal.md Outdated
Comment thread docs/notes/agent-capability-layer.md Outdated
Comment thread docs/proposals/P-010-type-disciplines.md Outdated
Comment thread docs/proposals/P-026-csharp-strictness-retrofit.md
Comment thread docs/proposals/P-032-own-arch-facts.md Outdated
- P-010: narrow the lowering claim — brands/refinements/units lower to
  plain structs + smart constructors; unions to a sealed hierarchy /
  closed struct union; protocols to consume-on-transition typestate rules
- P-026: define the one-bucket-per-finding precedence rule so the
  strictness score cannot double-count a defect across dimensions
- P-032: reconcile the intent-model contract with P-023 — one canonical
  machine contract (architecture.intent.json), P-023's rules.yaml as the
  authoring layer that renders to it
- P-033: state that IBitmapIndex And/Or/Except are non-mutating and
  return new indexes
- agent-capability-layer: acceptance gate build mode aligned with
  sandboy/README.md (cargo build --release)
- agentic-coding-discipline: language tags on all 61 bare fences (MD040)
@PhysShell
PhysShell merged commit 93e14a7 into main Jul 8, 2026
31 checks passed
PhysShell added a commit that referenced this pull request Jul 8, 2026
…strictness-retrofit in the just-merged consolidation PR #190)
PhysShell added a commit that referenced this pull request Jul 8, 2026
Own.NET's main gained a consolidation PR (#190) between when this
branch was cut and now, which resolved seven proposals fighting over
P-026 by renumbering to P-026..P-033. This one lands after that as
P-034 to avoid re-colliding. Confirmed no overlap with the newly
landed P-025/P-026/P-027 (obligation protocols, strictness retrofit,
resource state machines) — all three are static/analysis-time; this
proposal is the runtime/dynamic half none of them cover.
PhysShell added a commit that referenced this pull request Jul 8, 2026
…d P-034

Re-syncs with main after consolidation PR #190 (which renumbered
seven colliding P-026 candidates to P-026..P-033) and appends P-034
(runtime lifetime guard) at the end instead of re-colliding.
PhysShell added a commit that referenced this pull request Jul 8, 2026
This branch forked before consolidation PR #190 merged. It was
referencing P-026..P-033 in its README index without those files
actually existing in its tree (dead links, flagged by review). Copying
main's content verbatim so the branch is self-consistent standalone.
PhysShell added a commit that referenced this pull request Jul 8, 2026
Pins down a design discussion that asked whether the C/C++ "harden
malloc/free" idea has a .NET analog. Maps the discussion's rule
catalog onto what own-check/OwnLang already ships (OWN001-003/014,
WPF001-005, DI001-005, POOL001-003, OwnAudit phase 5) so it isn't
re-derived, records the already-decided non-goals (SafeHandle/Marshal
balance proofs), and scopes the one genuinely new piece: a small
opt-in runtime disposal guard + test-time quarantine that covers what
static analysis structurally can't (D5 ownership transfer, cross-thread
disposal races). Also cross-links the newly landed P-025/P-027 (static
obligation/state-machine checks) as related-but-different mechanisms.

Rebuilt on current main (branch claude/dotnet-lifetime-analyzer-hzor1x
hit an unresolvable merge conflict: its README.md edit and main's
consolidation PR #190 both inserted table rows at the same anchor
point relative to their common ancestor — a pure git 3-way-merge
hunk-adjacency collision, not a content disagreement).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants