← Engineering Project OSCONTENT HISTORY

Update to Engineering Project OS

Snapshot Nov 3, 2026 · 06:11 UTC · version 2.3.0

WHAT CHANGED

Package or technical metadata updated

Package or technical metadata updated

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Save Engineering Project OS and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

These are saved file metadata. Open a changed file to read its text edits.

Package file

Before

Oct 24, 2026 · 13:23 UTC

d487557331b74989ac13a90bcbb8cdcb27e8c202599e3b1f78c81c8718fdc1bc

After

Nov 3, 2026 · 06:11 UTC

964a70c3ee9557317874096587789d2888ea6ecd7281245c0da3731456c249f2

Package file

Before

Oct 24, 2026 · 13:23 UTC

ee3411d4c27efadc09348fe329d1be184f87525828def9fec344955c2a8c57c8

After

Nov 3, 2026 · 06:11 UTC

fd58d7245a98a676c07e45ad9127f10260556b4b7daf3c9ea100c19c86402916

Package file

Before

Oct 24, 2026 · 13:23 UTC

17915

After

Nov 3, 2026 · 06:11 UTC

21328

Package file

Before

Oct 24, 2026 · 13:23 UTC

94b36220889a83e481fbb29ed7a71e8e6035e45103a10b9a157e1210b980e6b3

After

Nov 3, 2026 · 06:11 UTC

73b7d4ae913de6dc39d396c3a79b31b7c5c7b4851cb51bd3cef51f26da78b223

Compare saved observations

Download comparison JSON

docs/REFERENCE.md

− removed · + added

--- before
+++ after
@@ -1,6 +1,17 @@
 # Reference
 
-This is the technical contract for Project OS 2.2.4. Start with the [README](../README.md) if installation, plugin invocation or repository connection is still new.
+Use this reference when you need an exact command, field or rule for Project OS 2.3.0 source. Verify the selected installation and actual release availability separately. Start with [Setup](SETUP.md) to connect a repository or [Usage](USAGE.md) for everyday requests to Codex.
+
+## Find a topic
+
+- [Finding records and checkpoint receipts](#interfaces)
+- [Chat requests and their arguments](#project-os-requests)
+- [Plans, user additions and guarded completion](#contracts-intake-and-guarded-completion)
+- [Files and what each one owns](#record-ownership)
+- [Reusable failure knowledge](#user-owned-reusable-knowledge)
+- [Standard and Program](#standard-and-program)
+- [Python helper commands and options](#helper-summary)
+- [Legacy finding proof ownership](#legacy-finding-proof-ownership) and [historical evidence snapshots](#historical-evidence-snapshots-during-upgrade)
 
 ## Interfaces
 
@@ -10,6 +21,8 @@
 
 `checkpoint --target <repository> --draft <markdown> [--dry-run]` writes only the configured STATE owner and appends a receipt. Required nonempty lines are Updated, Execution state, Active plan, Outcome, Verified, Remaining and Next action. Execution/active values must match the index. The draft is at most 78 lines and the final checkpoint at most 80. The receipt binds body and current SYSTEM, plans, requests, findings, reusable/project knowledge, active plan/contract and active Program when applicable; it does not hash all historical plans. `checkpoint --target <repository> --check [--json]` is read-only and exits nonzero for absent, malformed or stale proof. The schema remains 5 and generic check remains structurally backward compatible. A current receipt proves captured file identity, not semantic completeness or host acceptance.
 
+`brief --target <repository> [--json]` returns a read-only overview of record integrity, checkpoint freshness, the active plan's readiness and pending gates, complete unresolved request objects and planned or blocked slices. Request source text, decisions and extension fields remain intact. `read_next` routes CONTEXT, STATE, the active Program contract when present and the active plan with its configured contract; `record_paths` names original owners separately so recovery need not reload full historical registries. Program authority remains relevant without an active plan. Read originals before editing them or when history, omitted details or errors require it. `counts` gives total plans, total requests and unresolved requests; `gate_counts` gives each gate status count. Historical plan bodies, resolved request objects and non-pending gate details are omitted. Exit zero requires structural integrity and a current checkpoint, not completion of the active outcome. A structural failure returns nonzero with `records_available: false`; its empty arrays must not be interpreted as no unfinished work. A stale checkpoint returns nonzero while retaining validated work summaries. The JSON report has its own `schema_version: 1`; it does not change the repository schema or replace the final readiness guard.
+
 | Interface | Used for | Invocation |
 | --- | --- | --- |
 | Codex plugin or standalone skill | Repository-native workflows in the selected local workspace | `$project-os ...` in Codex chat |
@@ -17,10 +30,14 @@
 | Python helper | Deterministic setup, validation, upgrade, Program transitions and reusable knowledge operations | `project_os.py ...` in Terminal |
 | ChatGPT companion | Explanations and workflows over project files or portable bundles supplied in the conversation | `@Engineering Project OS ...` with the needed material |
 
-Engineering Project OS was built for Codex. `$project-os` selects the bundled skill for one Codex message while `@Engineering Project OS` selects the ChatGPT companion where that companion is available. Text after either selector is natural language, not a helper command line or rigid parser. Implicit invocation lets the selected plugin expose the skill for a clear Project OS request. The primary installation route is the GitHub Codex marketplace; [Setup](SETUP.md) separates it from the standalone skill and legacy Directory channel.
+Engineering Project OS was built for Codex. `$project-os` selects the bundled skill for one Codex message while `@Engineering Project OS` selects the ChatGPT companion where that companion is available. Text after either selector is natural language, not a helper command line or rigid parser. Implicit invocation lets the selected plugin expose the skill for a clear Project OS request. Install the current plugin through the Plugin Directory. [Setup](SETUP.md) also covers the GitHub marketplace and standalone Codex skill alternatives.
 
 Installation and repository access are separate. Codex can use only the local workspace selected for the task. ChatGPT can use only the project description, files and portable bundles available in the chat. Choosing a setup can begin from a description while reviewing an existing setup requires its actual Project OS files. Neither surface gains repository access from installation alone.
 
+Recovery also depends on available and permitted helper execution. With an executable selected helper, use `brief` and distinguish record integrity from outcome readiness. If an older selected helper lacks `brief`, keep it selected, run supported `check` and `checkpoint --check` commands and read configured owners; disclose unsupported checks. A missing required validation or writeback command leaves that operation incomplete. A failing integrity check is not a compatibility fallback. If execution is unavailable or forbidden, or the selected helper is missing, inspect readable supplied files only, preserve bytes and pending gates and report integrity, freshness and readiness checks as unverified. Do not mutate records, create receipts, close plans or claim a validated export through that fallback. Request the specific missing capability or material; never invent PASS/CURRENT, command output or a download link.
+
+When generic file operations are permitted, an unchanged input or byte-preserving transport copy may include factual file hashes and the full STATE receipt. Label helper checks and Project OS export validation unperformed. Those byte checks do not establish record integrity or checkpoint freshness. Explicit selection of supplied candidate files also does not establish installed plugin-loader discovery; verify the selected helper's actual bytes rather than relying on version text alone.
+
 The package retains three outcome-focused companion starter prompts. They apply where the companion is available; Codex marketplace installation does not install into ChatGPT Web:
 
 | Starter prompt | Required initial context |
@@ -75,6 +92,7 @@
 | `bootstrap` | None | Create Standard after a clean dry run |
 | `adopt` | None | Map compatible existing records after a clean dry run |
 | `check` | None | Read-only deterministic validation |
+| `brief` | None | Read-only compact integrity, checkpoint and unresolved-work report |
 | `repair` | Error or scope if not already known | Repair only verified Project OS inconsistency |
 | `upgrade` | None | Upgrade to the installed release with conflict checks |
 | `program start: <initiative>` | Initiative | Start one complete multi-phase contract |
@@ -192,6 +210,8 @@
 
 The requests registry has schema_version 1, positive next_id and requests. Every entry has id in R-NNN form, recorded_on in YYYY-MM-DD form, source_text, interpretation, origin_plan, target_plan, relation, status, gate_ids and decision. The counter exceeds all assigned numeric IDs. origin_plan and target_plan may be null during intake; non-null references identify existing plans. gate_ids contains unique IDs within the target contract. decision is text and explains routing or the user's cancellation or replacement.
 
+Copy the complete relevant user wording verbatim into source_text, including applicable shared conditions. Keep summaries and reasoning in interpretation; do not shorten, translate or replace the source with that interpretation. On withdrawal, retain the original source_text and quote the exact cancellation wording in decision before explaining the disposition. Preserve unrelated private material outside this scoped record. The helper can validate stored records but cannot compare them with a conversation it cannot access.
+
 Request statuses are captured, needs_clarification, integrated, implemented and withdrawn. Relations are same_outcome, prerequisite and independent. Routed entries require target_plan and linked gates. same_outcome and prerequisite remain in their origin plan; moving either to a successor fails validation. Implemented requires verified linked gates and their valid proof. Withdrawn requires a non-empty record of the user's explicit cancellation or replacement. An unresolved scoped request prevents closure even when the source checks pass. A routed independent successor does not block or later invalidate its predecessor's completion receipt.
 
 The managed WORKFLOW includes canonical request and evidence examples for ordinary turns without loading the skill. The agent validates and repairs records immediately after every intake, routing, cancellation or contract revision and checks recovered files before trusting their meaning.
@@ -226,6 +246,22 @@
 
 When returning supplied project files, the agent rereads the actual file bytes after all writes, preserves the complete STATE receipt and computes hashes from those bytes. It reconstructs the exact serialized snapshot in a new temporary directory and runs both check and checkpoint --check there, then compares the original source hashes again. A CURRENT result in the source workspace does not prove that a different returned file set is current.
 
+### Complete byte snapshots
+
+The bundled scripts/snapshot.py utility creates and checks a byte-preserving ZIP without running Project OS checks, application code or tests. With permission to run this utility, select the actual authorized source tree containing all intended projects, reports and proposal files. Its recursive inventory includes hidden files and nested directories without implicit exclusions. Do not inventory only a staging copy: a file omitted before that copy would already be invisible.
+
+~~~shell
+python3 /absolute/path/to/project-os/scripts/snapshot.py create --root /path/to/source-tree --output /path/outside/source-tree/snapshot.zip --require campaign-output/proposals/ownership.json --dry-run
+python3 /absolute/path/to/project-os/scripts/snapshot.py create --root /path/to/source-tree --output /path/outside/source-tree/snapshot.zip --require campaign-output/proposals/ownership.json
+python3 /absolute/path/to/project-os/scripts/snapshot.py check --root /path/to/source-tree --archive /path/outside/source-tree/snapshot.zip --require campaign-output/proposals/ownership.json
+~~~
+
+Use repeated --require arguments for every promised record, proposal or directory. Review the dry-run inventory before applying the identical command. The output must be new and outside the source tree. The utility preserves existing MANIFEST.json and AUDIT.json and reserves PROJECT-OS-SNAPSHOT.json for its own inventory, refusing a source collision. It refuses unsafe paths, symlinks, special files, missing required paths and source changes detected during capture. It also refuses path spellings that collide under per-segment Unicode canonical decomposition and case folding, including file/directory and parent-directory aliases. Original path spellings and file bytes remain unchanged. Directory descriptors remain open only for the active traversal path. It compares the actual serialized archive with the source inventory rather than trusting the archive's own manifest.
+
+The utility preserves file bytes and directory paths, not original permissions, ownership, timestamps or extended attributes. Limits are 50,000 source entries, 512 MiB of source content, a 16 MiB internal inventory and a 576 MiB archive. Dry-run returns the complete inventory without creating an archive; capture large JSON output outside the source tree. If creation fails after the output path was exclusively created, an unverified file may remain. The utility does not delete that pathname on failure because another owner may have replaced it. A failed create is not a deliverable; inspect it and use the read-only check before making any byte-preservation claim.
+
+A successful snapshot check establishes the reported byte identity, not record integrity, checkpoint freshness, approval or readiness. Run permitted project checks separately on the reconstructed artifact. A helper-execution prohibition also applies to this utility unless the user explicitly permits it; allowed generic file operations remain an alternative with the same complete-inventory checks. Nothing here authorizes broader collection or inclusion of secrets.
+
 For material changes, raise revision and record the reason and controlling request in the Markdown plan. Reassess evidence for the new revision. Revalidate evidence made stale by code or external changes as well. Once closed, preserve the historical receipt and use a new corrective slice for later requirements rather than rewriting the completed outcome.
 
 ## User-owned reusable knowledge
@@ -255,7 +291,7 @@
 {
   "format": "project-os-reusable-knowledge",
   "schema_version": 1,
-  "created_with": "2.2.4",
+  "created_with": "2.3.0",
   "entries": []
 }
 ~~~
@@ -290,6 +326,7 @@
 | `init` | Unless `--dry-run` | Create Standard |
 | `adopt` | Unless `--dry-run` | Attach to compatible existing owners |
 | `check` | No | Validate structure, lifecycle, proof, receipts, requests and release alignment |
+| `brief` | No | Aggregate integrity, checkpoint, active pending gates, unresolved requests and source paths |
 | `plan status` | No | Report gates, requests and remaining closure blockers |
 | `plan complete` | Unless `--dry-run` | Guarded atomic closure of an active plan |
 | `sync-knowledge` | No | Explain the migration from deprecated synchronization language to explicit user-owned import |
@@ -377,6 +414,18 @@
 
 The command is read-only. Success prints `Project OS check: PASS` and exits zero. Use `--config /path/to/proposed-SYSTEM.json` to validate an adoption manifest before installing it.
 
+### Brief
+
+**Run this in Terminal when helper execution is available and permitted:**
+
+~~~bash
+python3 /absolute/path/to/project-os/scripts/project_os.py brief --target /path/to/repository --json
+~~~
+
+This is the normal first inspection for a fresh or resumed session. `mode` identifies `standard` or `program` when records are available. `read_next` names the context, checkpoint, any active Program contract and active plan with its contract. `record_paths` identifies the original context, state, plan-index and request owners plus `program` when active; read an owner before changing it or when history, omitted detail or errors require it. The complete unresolved request objects retain source text, decisions and extensions. Resolved requests and historical plan bodies are omitted from the summary.
+
+Exit zero means integrity PASS with checkpoint CURRENT. An active outcome can still be NOT_READY because required acceptance or an unresolved request remains. A stale checkpoint fails inspection while retaining validated work summaries. If `records_available` is false, empty work arrays mean data was unavailable, not that the backlog is empty. Keep the error and inspect its actual owner; do not manufacture a clean report or treat a supported command's failure as an older-helper fallback. See [Interfaces](#interfaces) for compatibility and unavailable-execution routes.
+
 ### List knowledge
 
 **Run this in Terminal:**
@@ -544,9 +593,10 @@
 
 Release and file-format versions are separate:
 
-- Release 2.2.4 identifies the installed skill, helper, package metadata and connected `project_os_version`.
+- Release 2.3.0 identifies this source and its package metadata. Verify the actually selected installed skill/helper separately; a connected `project_os_version` must match that helper for validation.
 - `SYSTEM.schema_version` is 5.
 - Knowledge registries retain their own `schema_version: 1`.
+- The read-only `brief` JSON report has its own `schema_version: 1` and does not replace repository records.
 - Portable bundles use `format: project-os-reusable-knowledge` and `schema_version: 1`.
 - The version in the external `$schema` URL inside `plugin.json` belongs to that external schema, not to the Project OS release.
 
Full technical diff · 45 changed fields

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"d487557331b74989ac13a90bcbb8cdcb27e8c202599e3b1f78c81c8718fdc1bc"
AFTER
"964a70c3ee9557317874096587789d2888ea6ecd7281245c0da3731456c249f2"

changed /files/CHANGELOG.md/sha256

BEFORE
"ee3411d4c27efadc09348fe329d1be184f87525828def9fec344955c2a8c57c8"
AFTER
"fd58d7245a98a676c07e45ad9127f10260556b4b7daf3c9ea100c19c86402916"

changed /files/CHANGELOG.md/size

BEFORE
17915
AFTER
21328

changed /files/CONTRIBUTING.md/sha256

BEFORE
"94b36220889a83e481fbb29ed7a71e8e6035e45103a10b9a157e1210b980e6b3"
AFTER
"73b7d4ae913de6dc39d396c3a79b31b7c5c7b4851cb51bd3cef51f26da78b223"

changed /files/CONTRIBUTING.md/size

BEFORE
8642
AFTER
9634

changed /files/README.md/sha256

BEFORE
"7977a83f2221456b48c070737048dda8c32b8eca63e1f89745cfc8b1f8ee326b"
AFTER
"09805879825282fe758dd1522b3b700e459b4e5b01f6d7b25a80471a3fe755da"

changed /files/README.md/size

BEFORE
11635
AFTER
7158

changed /files/SECURITY.md/sha256

BEFORE
"1bab4538644615e7b47e36e9879fa28983a3aedc7c8c7a4590b77d14e4fd6f45"
AFTER
"d9a0de14687f9c71d156d53019b72f5c765aa0945c7c2f7cafaedde154aa397a"

changed /files/SECURITY.md/size

BEFORE
6359
AFTER
6511

changed /files/docs~1HOW_IT_WORKS.md/sha256

BEFORE
"6718c2aed368d943b54582d93931b0af11ecec6d14adf637a0e942148f813d0e"
AFTER
"6b59b13ea46aef256483d366ece76cbf517bdd20411b0bdd8a5d1cc91c822173"

changed /files/docs~1HOW_IT_WORKS.md/size

BEFORE
14975
AFTER
5773

changed /files/docs~1PACKAGING.md/sha256

BEFORE
"cfc8c0377706ffd5505c65e798b5012880a3969e9e6ec1ad155ad68a0f489f6c"
AFTER
"b2a2d2f57ccc992018ba504ee0bbd1609cca7bb58723267865df011efe3d4adf"

changed /files/docs~1PACKAGING.md/size

BEFORE
21907
AFTER
27884

changed /files/docs~1PRIVACY.md/sha256

BEFORE
"8196e7a8dd005f8e63c3ae70e7c5387bb5c9e6b343a92a6edd26084927d1588f"
AFTER
"1ed53959c1723ddddd94ec167a5fd60365fc2db1e6daa4be3a11fd6542a6ad81"

changed /files/docs~1PRIVACY.md/size

BEFORE
2389
AFTER
2785

changed /files/docs~1REFERENCE.md/sha256

BEFORE
"7917ea8ae9bb4a359c0e7068b8260f604fd9e62f84e09270a69c9c94f295c205"
AFTER
"8769bbadb95ece8ec94746500708c5d9b41b111cbe9e545b3d2bb2a59a8543be"

changed /files/docs~1REFERENCE.md/size

BEFORE
45683
AFTER
54567

changed /files/docs~1SETUP.md/sha256

BEFORE
"f3247394e05cc1be13794807c88f37c5c95b30946720be8d34ac3ce98c7e1d5b"
AFTER
"cdd61c87ddd33af407721a5ea58d03440882aa2ef09f4c8f54b10066e3f0d78e"

changed /files/docs~1SETUP.md/size

BEFORE
10373
AFTER
7926

changed /files/docs~1USAGE.md/sha256

BEFORE
"32fc4670c4c3156d0aa3c34b70a39e1503f15509c1f2305c2b1c4b9620785c9f"
AFTER
"5ca293b9ab2e7d78826e1401f1547d7e942cf4f4208ccf495adf5909aeec0ee5"

changed /files/docs~1USAGE.md/size

BEFORE
16614
AFTER
10354

changed /files/plugin.json/sha256

BEFORE
"a78f2e8405ea19efc1f3b8f69e61b2c59340f450fadc49b56feba1e691ff2b89"
AFTER
"9457aff3398b62d4f7f8ee9ebb7427cb8a92fea22467f566a01c42fddb600437"

changed /files/scripts~1check_codex_review.py/sha256

BEFORE
"34582976581a5dc8ef4d88187965b49023ceeca3057711186b7f209888cfeecf"
AFTER
"9a19981b9a6775f5b420a20ff25034dd76957e4597bb8453c97e7ce843482e77"

changed /files/scripts~1check_codex_review.py/size

BEFORE
25187
AFTER
33589

changed /files/skills~1project-os~1SKILL.md/sha256

BEFORE
"7f884b2613e0eac3dd7a9b34345b8d9c25778d41a61eac6268323799c0cb63b4"
AFTER
"b2bc73471dd4731b8674be6983398606af9973389123374f436c51a5963f5626"

changed /files/skills~1project-os~1SKILL.md/size

BEFORE
14525
AFTER
19806

changed /files/skills~1project-os~1assets~1templates~1core~1.agents~1WORKFLOW.md/sha256

BEFORE
"f6af58603c0b52d0c4ccce595776f3b326e67f9f9e6981ab21f9a8ebb1c1175f"
AFTER
"eb6b9ff8063c201059edb2d305d01028d75f7ae503ca0993bc2bd935b4db6d30"

changed /files/skills~1project-os~1assets~1templates~1core~1.agents~1WORKFLOW.md/size

BEFORE
16307
AFTER
21145

changed /files/skills~1project-os~1assets~1templates~1core~1AGENTS.md/sha256

BEFORE
"58aa0b9d0eb9dd09ed252e8283e5897b9c4bcf5f0805c113adf1e245e623f590"
AFTER
"e3c910d1fb74dca2f79ad45f26d5aefe384bc46ba83d2fdf15e6d981a8af644d"

changed /files/skills~1project-os~1assets~1templates~1core~1AGENTS.md/size

BEFORE
4978
AFTER
5798

changed /files/skills~1project-os~1evals~1README.md/sha256

BEFORE
"08e91e553ad39a7e8232d4abe1d6b04f8b3fe705294ffc58faa993192b8b60b4"
AFTER
"c3b65848c7f3ba840fcb4b79f6dff69b92673611476313c299d76c60202b4a2a"

changed /files/skills~1project-os~1evals~1README.md/size

BEFORE
6691
AFTER
12170

changed /files/skills~1project-os~1evals~1continuity.json/sha256

BEFORE
"422f9f58bf9fed1e4cef30530fbe8575f5608d06ba96856e2563d111e74eec9f"
AFTER
"bf280f2af4ced82a691038a2c3103c49b7d3020175f9f30a0bc57730f6008fac"

changed /files/skills~1project-os~1evals~1continuity.json/size

BEFORE
8009
AFTER
9943

changed /files/skills~1project-os~1evals~1prepare_fixture.py/sha256

BEFORE
"cf48d253631705601cc1c982f3d343024b67da4e61ed1509eaac97f976024df1"
AFTER
"fd2dab2f5019079029c75900765f2b296eec40ea0bd3487827cfe3c082d17318"

changed /files/skills~1project-os~1evals~1prepare_fixture.py/size

BEFORE
14954
AFTER
19564

changed /files/skills~1project-os~1evals~1prompts.json/sha256

BEFORE
"11f8ebe82f718731e10bedbad201eaa7bd67454bd34ca103bf528cd18059817d"
AFTER
"4b1e3e80e486568d8409e3b7ec063790cce05fe7cb3cd0535bd803b50d530e7a"

changed /files/skills~1project-os~1evals~1prompts.json/size

BEFORE
11869
AFTER
17558

changed /files/skills~1project-os~1references~1knowledge.md/sha256

BEFORE
"8c811b5186634dd950ff35a2712134dce67a97fd072012f4767ceec8a66825ff"
AFTER
"1c4f0bf06f5f6a19e8f794c9365f4478be0e151dc816fe3eec1c933e621ed9b0"

changed /files/skills~1project-os~1references~1knowledge.md/size

BEFORE
14667
AFTER
15110

changed /files/skills~1project-os~1references~1maintenance.md/sha256

BEFORE
"a8981a66357b6606a27adc4f42bf2ee6e493648a576d9ae06dafdcd4404c9f53"
AFTER
"0174ce58621c5a2db1e38ce613ccb024fa61a2b7290e0ad66ba5cf0c50f87215"

changed /files/skills~1project-os~1references~1maintenance.md/size

BEFORE
21134
AFTER
29861

changed /files/skills~1project-os~1scripts~1project_os.py/sha256

BEFORE
"e137844eb37a0638ee8e5388ee307a963723ad036c7085f47d23a269ca44c6d9"
AFTER
"31df2a4d1344d874af84f7a28747e4adc5461f1ca834d451af8882891705ec44"

changed /files/skills~1project-os~1scripts~1project_os.py/size

BEFORE
296898
AFTER
305688

added /files/skills~1project-os~1scripts~1snapshot.py

BEFORE
Field was absent
AFTER
{
  "sha256": "941ad62108dc2cbf2ff16cc3250e5d7f685bc1dbcc25048d9028639d52ddd2ed",
  "size": 19807
}
Full snapshot data
{
  "files": {
    ".codex-plugin/plugin.json": {
      "sha256": "964a70c3ee9557317874096587789d2888ea6ecd7281245c0da3731456c249f2",
      "size": 2508
    },
    "CHANGELOG.md": {
      "sha256": "fd58d7245a98a676c07e45ad9127f10260556b4b7daf3c9ea100c19c86402916",
      "size": 21328
    },
    "CONTRIBUTING.md": {
      "sha256": "73b7d4ae913de6dc39d396c3a79b31b7c5c7b4851cb51bd3cef51f26da78b223",
      "size": 9634
    },
    "LICENSE": {
      "sha256": "2b5277a87aa3ff5fa8bf0155b36a1e7f6c2c5e099123fd5666436352670b129e",
      "size": 1081
    },
    "README.md": {
      "sha256": "09805879825282fe758dd1522b3b700e459b4e5b01f6d7b25a80471a3fe755da",
      "size": 7158
    },
    "SECURITY.md": {
      "sha256": "d9a0de14687f9c71d156d53019b72f5c765aa0945c7c2f7cafaedde154aa397a",
      "size": 6511
    },
    "assets/icon.svg": {
      "sha256": "320ef870116057315ea41f8015064f69666beb37f6a0dbbb0b46f08612976f4c",
      "size": 641
    },
    "assets/logo.svg": {
      "sha256": "9e73a9b4c30c8ddf8056da1ae6258ef50a42c6a5b2b9fe9222cec613612f83cd",
      "size": 643
    },
    "assets/social-preview.png": {
      "sha256": "464a52ca13f2be4531c19db996ec0adad6080b6a04d828c7660c2e3a5c3eaf42",
      "size": 48952
    },
    "assets/social-preview.svg": {
      "sha256": "eebe9d47501e2f3a8d13213e3a5e55c77446af0c268da48cd7fe3d5d95b49c70",
      "size": 2914
    },
    "docs/HOW_IT_WORKS.md": {
      "sha256": "6b59b13ea46aef256483d366ece76cbf517bdd20411b0bdd8a5d1cc91c822173",
      "size": 5773
    },
    "docs/PACKAGING.md": {
      "sha256": "b2a2d2f57ccc992018ba504ee0bbd1609cca7bb58723267865df011efe3d4adf",
      "size": 27884
    },
    "docs/PRIVACY.md": {
      "sha256": "1ed53959c1723ddddd94ec167a5fd60365fc2db1e6daa4be3a11fd6542a6ad81",
      "size": 2785
    },
    "docs/REFERENCE.md": {
      "sha256": "8769bbadb95ece8ec94746500708c5d9b41b111cbe9e545b3d2bb2a59a8543be",
      "size": 54567
    },
    "docs/SETUP.md": {
      "sha256": "cdd61c87ddd33af407721a5ea58d03440882aa2ef09f4c8f54b10066e3f0d78e",
      "size": 7926
    },
    "docs/TERMS.md": {
      "sha256": "d900fa8cb94916a77e646eca74db7a6d972379e1b671b4792786291f12858c4d",
      "size": 1918
    },
    "docs/USAGE.md": {
      "sha256": "5ca293b9ab2e7d78826e1401f1547d7e942cf4f4208ccf495adf5909aeec0ee5",
      "size": 10354
    },
    "plugin.json": {
      "sha256": "9457aff3398b62d4f7f8ee9ebb7427cb8a92fea22467f566a01c42fddb600437",
      "size": 2706
    },
    "scripts/check_codex_review.py": {
      "sha256": "9a19981b9a6775f5b420a20ff25034dd76957e4597bb8453c97e7ce843482e77",
      "size": 33589
    },
    "scripts/package_plugin.py": {
      "sha256": "d179cc5f2e645dc305bf41ce1410cf9984cfa0633493589aae37f04d0901e825",
      "size": 12969
    },
    "skills/project-os/SKILL.md": {
      "sha256": "b2bc73471dd4731b8674be6983398606af9973389123374f436c51a5963f5626",
      "size": 19806
    },
    "skills/project-os/agents/openai.yaml": {
      "sha256": "6c2451a360c5b897d925249cd1063fcfa0ae6ce20d0c5356a9298d999e3e60e0",
      "size": 375
    },
    "skills/project-os/assets/icon-large.svg": {
      "sha256": "9e73a9b4c30c8ddf8056da1ae6258ef50a42c6a5b2b9fe9222cec613612f83cd",
      "size": 643
    },
    "skills/project-os/assets/icon-small.svg": {
      "sha256": "320ef870116057315ea41f8015064f69666beb37f6a0dbbb0b46f08612976f4c",
      "size": 641
    },
    "skills/project-os/assets/overlays/react-native-expo.md": {
      "sha256": "f3842aa1b10fabbed1651d0ef9ed857f2a6577d63f4e74fe2d97a56752bb254b",
      "size": 1035
    },
    "skills/project-os/assets/packs/README.md": {
      "sha256": "256c78e384ac70756c8192a7d1dae5449de59b86306c83bed2441a55a766cc2f",
      "size": 1028
    },
    "skills/project-os/assets/packs/data.md": {
      "sha256": "b785ef2be863917ea1b52abcb5e62d5fea29342ec3f913433b7773bfd636de02",
      "size": 833
    },
    "skills/project-os/assets/packs/delivery.md": {
      "sha256": "61e4974af6c36377f75f5d5a80a7a9c81b39b1812c56f32205d4076a89336bb6",
      "size": 829
    },
    "skills/project-os/assets/packs/mobile.md": {
      "sha256": "75653f85bcc653c6d138e1c1821e7bc768d8c85754ee1c100beb42c3c7bbc04d",
      "size": 966
    },
    "skills/project-os/assets/packs/service.md": {
      "sha256": "c9846ee0d6509812dc49b4b3d7ac7b161722f3c6fb5acbf8378daca2d5fea8d6",
      "size": 797
    },
    "skills/project-os/assets/packs/web.md": {
      "sha256": "b7c14b078bc66311f7602c93127445ea9c70eec73902c9e77f7e2e7a41ecb597",
      "size": 850
    },
    "skills/project-os/assets/templates/core/.agents/CONTEXT.md": {
      "sha256": "cac7e22dcb6bf3dd2fe32abbd6726ba3f8e96bfcd2e096ccbc5f593776b2fa02",
      "size": 1096
    },
    "skills/project-os/assets/templates/core/.agents/README.md": {
      "sha256": "cf747afe6237402ccebde9a2ec322752d6724d9e662dadb673cf3e83a2d8ad2a",
      "size": 1833
    },
    "skills/project-os/assets/templates/core/.agents/STATE.md": {
      "sha256": "deb7de342922767e6d5d9dc35545195693dbc5115d0e8c28edf5782b0b32daaf",
      "size": 739
    },
    "skills/project-os/assets/templates/core/.agents/WORKFLOW.md": {
      "sha256": "eb6b9ff8063c201059edb2d305d01028d75f7ae503ca0993bc2bd935b4db6d30",
      "size": 21145
    },
    "skills/project-os/assets/templates/core/.agents/evidence/README.md": {
      "sha256": "6d7305c99da57a53658b2e10d3d0a01bc0b96c0452f7d139feeba42554860c09",
      "size": 420
    },
    "skills/project-os/assets/templates/core/.agents/findings/README.md": {
      "sha256": "da004b9622fd04e37b073cc744298d050fc21cfda33ee6a5826f617fc5ad47a4",
      "size": 513
    },
    "skills/project-os/assets/templates/core/.agents/findings/findings.json": {
      "sha256": "10eaf276f6fa7c4d4fcb45d0dc4d45f8a0566531d8c7c7ebbe6973534777f09a",
      "size": 60
    },
    "skills/project-os/assets/templates/core/.agents/knowledge/README.md": {
      "sha256": "982e8d55715ae97ae94de270c51ad86cdc1c4de50a25152e21673471f6e3afa2",
      "size": 547
    },
    "skills/project-os/assets/templates/core/.agents/knowledge/project/failures.json": {
      "sha256": "7ce7bfa8f4813891b7883be037071b81afa56ecef5901a8cb25c61b201f46f82",
      "size": 76
    },
    "skills/project-os/assets/templates/core/.agents/knowledge/reusable/failures.json": {
      "sha256": "406e9052d7c5782d0e70febbe2a12d5a9e72046854bdac2684c4c7909900ddc3",
      "size": 43
    },
    "skills/project-os/assets/templates/core/.agents/plans/README.md": {
      "sha256": "605c6829a0b5a2f6e76146ccfac00cc712bdca8cdf109dc6bfbcfc18c48a1e7c",
      "size": 3707
    },
    "skills/project-os/assets/templates/core/.agents/plans/index.json": {
      "sha256": "bde14cb71b0a712b1fc338ecf98432bbc4babe4e0ed8930066c6c9fc8b4144a2",
      "size": 138
    },
    "skills/project-os/assets/templates/core/.agents/requests.json": {
      "sha256": "f6942bd914e9ada67b56aaccec14d4da9e4806888f5c265cee6e6018315c8935",
      "size": 60
    },
    "skills/project-os/assets/templates/core/AGENTS.md": {
      "sha256": "e3c910d1fb74dca2f79ad45f26d5aefe384bc46ba83d2fdf15e6d981a8af644d",
      "size": 5798
    },
    "skills/project-os/assets/templates/program/PROGRAM.md": {
      "sha256": "02ef62d5362b0362b6533bcde4ba84c3452d796667f0a63686045fe21b5b0127",
      "size": 561
    },
    "skills/project-os/assets/templates/program/history/README.md": {
      "sha256": "5545722071313de97efc9311065e2979b1bbf7e87baa177d10e3af0328c530f8",
      "size": 417
    },
    "skills/project-os/evals/README.md": {
      "sha256": "c3b65848c7f3ba840fcb4b79f6dff69b92673611476313c299d76c60202b4a2a",
      "size": 12170
    },
    "skills/project-os/evals/continuity.json": {
      "sha256": "bf280f2af4ced82a691038a2c3103c49b7d3020175f9f30a0bc57730f6008fac",
      "size": 9943
    },
    "skills/project-os/evals/discovery.json": {
      "sha256": "f010fc729527fbb22dc66331eb2f8571ba883d895575ca1f624d57935b0c3bda",
      "size": 8368
    },
    "skills/project-os/evals/prepare_fixture.py": {
      "sha256": "fd2dab2f5019079029c75900765f2b296eec40ea0bd3487827cfe3c082d17318",
      "size": 19564
    },
    "skills/project-os/evals/prompts.json": {
      "sha256": "4b1e3e80e486568d8409e3b7ec063790cce05fe7cb3cd0535bd803b50d530e7a",
      "size": 17558
    },
    "skills/project-os/evals/submission.json": {
      "sha256": "cc2285a755802641d990775f3f71ea81259f7bf7669c559fd44b62aa9ec3d98d",
      "size": 13959
    },
    "skills/project-os/references/bootstrap.md": {
      "sha256": "0c9d373b65d1580a2addee2670e81cddf280559efed12ebc98cf4d31a8a600e1",
      "size": 5075
    },
    "skills/project-os/references/knowledge.md": {
      "sha256": "1c4f0bf06f5f6a19e8f794c9365f4478be0e151dc816fe3eec1c933e621ed9b0",
      "size": 15110
    },
    "skills/project-os/references/maintenance.md": {
      "sha256": "0174ce58621c5a2db1e38ce613ccb024fa61a2b7290e0ad66ba5cf0c50f87215",
      "size": 29861
    },
    "skills/project-os/scripts/project_os.py": {
      "sha256": "31df2a4d1344d874af84f7a28747e4adc5461f1ca834d451af8882891705ec44",
      "size": 305688
    },
    "skills/project-os/scripts/snapshot.py": {
      "sha256": "941ad62108dc2cbf2ff16cc3250e5d7f685bc1dbcc25048d9028639d52ddd2ed",
      "size": 19807
    }
  }
}

SHA-256 of public snapshot: 5eab4f74720003e876eed08c6fa153f3bf461301ca0686a6c2372074ec74aed0