Skip to content

docs: make the repository legible to open-source readers, and license it - #97

Merged
stone16 merged 9 commits into
mainfrom
claude/improve-readme-open-source-6c4bb9
Jul 26, 2026
Merged

docs: make the repository legible to open-source readers, and license it#97
stone16 merged 9 commits into
mainfrom
claude/improve-readme-open-source-6c4bb9

Conversation

@stone16

@stone16 stone16 commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Makes the repository legible to an open-source reader, and licenses it.

The previous README was an engineering ledger rather than an entry point: roughly 200 of its 306 lines were per-issue activation notes, the "why does this exist" section sat at line 265, and there was no architecture or repository-structure section at all. The precision of that ledger is a genuine asset for a security product — so it was moved, not deleted.

Changes

File Change
README.md Rewritten, English-primary. Adds architecture, repository layout, and a working quick start.
README.zh-CN.md New Chinese counterpart.
STATUS.md New. Receives the per-issue ledger, restructured as an ADR-indexed table so it stops going stale.
CONTRIBUTING.md New. Verification contract, architectural boundaries, ADR workflow, PR checklist.
LICENSE New. Apache-2.0, full text including the appendix.
pyproject.toml Declares license = "Apache-2.0" + license-files.

Nothing under engine/, adapters/, applications/, or tests/ is touched. AGENTS.md, CLAUDE.md, PLAN.md, and CONTEXT.md are unchanged.

Factual errors fixed

The previous README could not be followed successfully:

  1. Missing prerequisites. It stated "Python 3.13 and uv", but make install also runs npm ci for three TypeScript workspaces — Node 22.12.0 and Docker are hard requirements.
  2. Deprecated route advertised. It documented POST /v1/context:resolve, which is the legacy path (include_in_schema=False). The public contract frozen in openapi/v0/openapi.json is POST /v0/resolve.
  3. Broken sentence. A spliced fragment spanning the old lines 105–111 left half a sentence dangling; repaired during the move to STATUS.md.
  4. Stale activation claims. The ledger stopped at Issue delivery: complete one private File-backed BotDelivery flow #71 while the repository had reached STO-399: build TypeScript graph before unit lane #96, and the worker paragraph still declared expired-lease reclaim NOT_ACTIVE after ADR-0060 activated it. The ADR-indexed table now covers ADR-0030 through ADR-0060.

Verification

  • /health response documented in the README was captured from a running server, not assumed: {"status":"ready","service":"context-engine-api","version":"0.1.0","runtime_delivery":"NOT_ACTIVE"}
  • Route existence probed: /v0/resolve → 400, /v1/context:resolve → 400, /nonexistent → 404
  • All four documented worker modes (--test-mode, --run-file-job, --dispatch-file-once, --dispatch-files) verified against applications/worker.py
  • make build passes; the built wheel carries License-Expression: Apache-2.0 and License-File: LICENSE
  • make lint passes
  • All relative links in the four Markdown files resolve
  • LICENSE is a byte-identical copy of the canonical Apache-2.0 text (202 lines, appendix included)

The full make check was not run locally — CI covers it on this PR.

Open items for the maintainer

  • LICENSE copyright holder is unfilled. The appendix retains the Copyright [yyyy] [name of copyright owner] template. Choosing an individual or a company is a legal decision; a NOTICE file or source headers may be preferable.
  • STATUS.md boundary notes cover through Issue delivery: complete one private File-backed BotDelivery flow #71 only. ADRs 0032–0060 are listed with titles and links but no prose boundary description, because that precise "this proof does not claim X" wording never existed outside the ADRs themselves and should not be paraphrased.

Summary by CodeRabbit

  • Documentation

    • Added comprehensive English and Simplified Chinese project guides covering capabilities, status, architecture, setup, API and worker usage, development commands, and security boundaries.
    • Added a capability-status ledger documenting active features, non-active capabilities, verification evidence, and release criteria.
    • Added contribution guidance, testing expectations, troubleshooting practices, and pull request requirements.
  • Chores

    • Added Apache License 2.0 terms and updated project metadata to reference the license.

@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

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

Next review available in: 40 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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7bfd9e22-a41b-4e1d-83f4-399e5c023d45

📥 Commits

Reviewing files that changed from the base of the PR and between 8d01cfe and 834e949.

⛔ Files ignored due to path filters (3)
  • action_plane/typescript/package-lock.json is excluded by !**/package-lock.json
  • bot_delivery/typescript/package-lock.json is excluded by !**/package-lock.json
  • sdk/typescript/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (15)
  • CONTRIBUTING.md
  • NOTICE
  • README.md
  • README.zh-CN.md
  • STATUS.md
  • action_plane/typescript/LICENSE
  • action_plane/typescript/NOTICE
  • action_plane/typescript/package.json
  • bot_delivery/typescript/LICENSE
  • bot_delivery/typescript/NOTICE
  • bot_delivery/typescript/package.json
  • pyproject.toml
  • sdk/typescript/LICENSE
  • sdk/typescript/NOTICE
  • sdk/typescript/package.json
📝 Walkthrough

Walkthrough

The pull request adds contribution and licensing files, rewrites the English README, adds a Simplified Chinese README, introduces a capability-status ledger, and declares Apache 2.0 metadata in pyproject.toml.

Changes

Project documentation baseline

Layer / File(s) Summary
Contribution and licensing foundation
CONTRIBUTING.md, LICENSE, pyproject.toml
Contribution rules, security verification requirements, Apache 2.0 license text, and package license metadata are added.
Capability status and evidence ledger
STATUS.md
Capability activation states, security invariants, proof boundaries, HTTP evidence-tracer behavior, and make security-gate reporting are documented.
English project guide
README.md
Project status, setup and runtime commands, architecture, security invariants, references, contribution guidance, and licensing are documented in a rewritten English README.
Simplified Chinese project guide
README.zh-CN.md
A Chinese project guide documents setup, runtime credentials, architecture protocols, release vetoes, evidence reporting, references, contribution guidance, and licensing.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • stone16/context-engine#32: Adds trusted-invocation and immutable-revision ADR baselines that are reflected in this pull request’s documented architectural boundaries.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the documentation rewrite and Apache-2.0 licensing work in this changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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/improve-readme-open-source-6c4bb9

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: 8d01cfe98f

ℹ️ 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".

Comment thread pyproject.toml Outdated
Comment thread README.md Outdated

@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: 4

🤖 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 `@CONTRIBUTING.md`:
- Around line 52-53: Update the prerequisite sentence in CONTRIBUTING.md to link
readers to the README and repository toolchain configuration as the sources of
truth, removing the hardcoded Python and Node versions while retaining
references to uv and Docker as appropriate.

In `@README.md`:
- Around line 204-216: Declare the language for all four text-only
architecture/layout fenced blocks by changing their opening fences to text
fences: README.md lines 204-216 and 228-251, and README.zh-CN.md lines 189-201
and 213-236. No other content changes are needed.
- Line 21: Fix the first section heading hierarchy by changing the section
heading at README.md lines 21-21 from h3 to h2, and changing the corresponding
Chinese section heading at README.zh-CN.md lines 19-19 from h3 to h2.

In `@STATUS.md`:
- Around line 293-300: Update the status description around the Acquire outcomes
to identify the successful 200 path exclusively as the explicit synthetic
conformance composition. Clearly state that the production/default application
composition is reject-all, while preserving the existing 401 and 503 behavior
and the guarantee that neither path performs content-system calls.
🪄 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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 99abb8fc-453c-4e41-9869-8ae28e479add

📥 Commits

Reviewing files that changed from the base of the PR and between a1701ec and 8d01cfe.

📒 Files selected for processing (6)
  • CONTRIBUTING.md
  • LICENSE
  • README.md
  • README.zh-CN.md
  • STATUS.md
  • pyproject.toml

Comment thread CONTRIBUTING.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread STATUS.md Outdated

@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: 755650297f

ℹ️ 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".

Comment thread STATUS.md Outdated
Comment thread README.md Outdated

@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: 834e949229

ℹ️ 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".

Comment thread README.md
|---|---|---|
| [uv](https://docs.astral.sh/uv/) | — | Dependency resolution, pinned by `uv.lock` |
| [Python](https://www.python.org/) | `requires-python` in [`pyproject.toml`](./pyproject.toml) — `uv sync` provisions a matching interpreter for you | Engine, adapters, worker |
| [Node.js](https://nodejs.org/) | [`sdk/typescript/.node-version`](./sdk/typescript/.node-version) — `nvm use`, `fnm use`, and `asdf` read it automatically | TypeScript SDK, ActionPlane, BotDelivery |

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 Add a version file that nvm actually reads

When a contributor follows this row with nvm, nvm use does not read .node-version: the inspected nvm 0.40.2 help says Uses .nvmrc if available, while the repository has no .nvmrc. In a normal checkout this errors, or it can silently select an unrelated ancestor .nvmrc; sdk/typescript/scripts/verify-runtime.mjs:5-10 then rejects anything other than the exact checked-in Node version. Add .nvmrc or document an explicit command that reads .node-version.

Useful? React with 👍 / 👎.

@stone16
stone16 merged commit 2d1798f into main Jul 26, 2026
2 checks passed
stone16 added a commit that referenced this pull request Jul 26, 2026
Main's Issues #88-#94 claimed ADR numbers 0057-0060, so the four
course-correction ADRs are renumbered to 0061-0064 with every
cross-reference in the ADRs, review document, CONTEXT.md, and PLAN.md
updated. The decisions README keeps main's 0055-0058 entries verbatim
and appends 0061-0064. The review document's adjustment item for the
README status ledger now records that #97 already extracted it to
STATUS.md.
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.

1 participant