← 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/USAGE.md

− removed · + added

--- before
+++ after
@@ -1,239 +1,118 @@
 # Usage
 
-Engineering Project OS is built for Codex. Use it when engineering work must survive multiple tasks, preserve evidence or carry reviewed failure lessons into another repository you own. ChatGPT is a companion for explanations, supplied files and portable bundles.
+After [connecting a repository](SETUP.md#connect-a-repository), ask Codex for the engineering work you want. You do not need to manage findings, checkpoint commands or JSON yourself. Use `$project-os` when the request concerns Project OS itself or explicitly selects its knowledge workflow.
 
-After a repository is connected, ordinary product work does not need a Project OS prefix. Use `$project-os` when the request itself concerns inspection, durable work state, findings, knowledge, upgrades or Program lifecycle.
-
-## Compact request table
-
-| Developer job | Codex request | Writes |
-| --- | --- | --- |
-| Understand the system | `$project-os overview` | No |
-| Inspect repository state | `$project-os inspect` | No |
-| Create or adopt the control plane | `$project-os bootstrap` or `$project-os adopt` | After a clean preview |
-| Validate the control plane | `$project-os check` | No |
-| Read remaining work | `$project-os plan status[: <plan-id>]` | No |
-| Resume or manage durable work | `$project-os plan open: <outcome>`, `plan checkpoint`, `plan resume`, `plan complete`, `plan block: <reason>` or `plan supersede: <reason>` | Record changes after review |
-| Coordinate a multi-phase initiative | `$project-os program start: <initiative>`, `program status` or `program close <disposition>` | Start and close after a clean preview; status is read-only |
-| Record and reuse failures | `$project-os finding add: <observation>` or `$project-os knowledge <operation>` | Capture, approval, lifecycle and import operations may write |
-| Upgrade a connected repository | `$project-os upgrade` | Managed files after a clean dry-run |
-
-Use [Reference](REFERENCE.md) for every request variant, exact helper syntax and record schema.
-
-## Return to work in a new Codex task
-
-Open the repository and ask Codex to continue the actual engineering job. Applicable `AGENTS.md` files route it to the current Project OS state automatically.
+## Work on a normal engineering task
 
 ~~~text
-Continue the offline retry work from the current repository state. Verify the recorded blocker before changing code.
+Fix the crash when the input is missing and run the focused tests.
 ~~~
 
-Codex should inspect WORKFLOW, unresolved requests, the active plan with its contract, STATE, relevant findings and referenced evidence. It should distinguish facts that remain current from acceptance gates that still need verification, then continue from the recorded next action.
-
-Use `$project-os plan resume` only when the Project OS plan transition itself is required, such as reactivating a blocked plan after its blocker is proven resolved. A new task does not require a ceremonial resume command when an active plan already routes the work.
-
-## Open and checkpoint a long task
+Codex investigates, reproduces the symptom where practical, makes the authorized correction and checks it. Its repository instructions require recording reproduced defects, including one you already named, while keeping hypotheses distinct from confirmed causes.
 
-Open a plan when an outcome is likely to outlive the current task or needs explicit acceptance conditions:
+The saved finding, evidence and current checkpoint describe what changed, what was checked and what remains. A bounded repair can stay plan-free. Passing tests does not replace this handoff.
 
-~~~text
-$project-os plan open: make password reset idempotent across API retries and worker redelivery
-~~~
+Decisions are needed for material ambiguity, scope changes or actions requiring permission. The agent must follow the workflow; Project OS does not independently discover every defect.
 
-Codex inspects current authority, checks that no other plan is active and prepares one outcome-sized plan. The Markdown plan records scope, exclusions, implementation and decisions. Its adjacent JSON contract owns acceptance conditions, required proof and next actions; the index owns status. It does not implement the feature merely because the plan was opened.
+## Return to work in a new Codex task
 
-Checkpoint after repository truth changes materially or before a handoff:
+Open the repository and ask:
 
 ~~~text
-$project-os plan checkpoint
+Continue the current work from the repository records. Verify what remains before changing code.
 ~~~
 
-A checkpoint reconciles the plan and `STATE.md` with actual work, findings and evidence. It is not a transcript. The result should state what is complete, what remains unverified and the exact next action.
+When execution is available and permitted, Codex first runs the selected helper's read-only `brief`. That compact report keeps complete unfinished requests visible and routes the context, checkpoint and active plan with its acceptance conditions. Codex reads original registries before changing them or when errors or missing detail require it. It verifies consistency and freshness before relying on the saved next action. This also applies after context compaction.
 
-Complete only when the plan's required evidence exists:
+Codex verifies whether a recorded blocker is resolved and asks for a plan choice only when ambiguous. A new chat needs no resume command when the active plan already identifies the work.
 
-~~~text
-$project-os plan complete
-~~~
-
-The request invokes the helper plan complete with a checkpoint draft and reviewed dry run. It cannot close a plan with a pending prerequisite, invalid proof or unresolved scoped request. Completion saves the idle checkpoint and its fresh receipt in the same transaction and verifies CURRENT. Following slices remain planned. Source checks, deployment, public availability and physical acceptance remain separate gates. A passing CI job cannot satisfy a device-specific acceptance condition unless the plan explicitly defines that equivalence.
+Recovery uses saved files, not the entire previous conversation. Codex must reconcile stale records or explain discrepancies for a read-only request. The checkpoint should leave one concrete next action.
 
 ## Add a requirement during work
 
-Send an ordinary instruction, without a Project OS prefix or a separate save command:
-
 ~~~text
 Also handle reconnecting after the app has been offline. Keep the existing retry behavior.
 ~~~
 
-Codex captures the requirement immediately and integrates it into the same outcome's contract. A material outcome change raises contract revision and requires reassessing proof. Captured means saved; integrated means assigned; implemented requires verified linked gates.
+Codex records a material instruction while handling your message, without waiting for a separate save command. A compatible addition joins the current outcome and its acceptance conditions. An independent outcome becomes a planned slice with a recorded order; only one plan runs at a time.
 
-For an independent request such as a new diagnostics screen, Codex creates a planned slice with a contract and recorded sequence. It keeps one active plan. If the addition conflicts with an earlier rule, Codex records needs_clarification, asks for the required decision and continues independent authorized work. An explicit cancellation is recorded as withdrawn with the user's decision; nothing is silently dropped.
+The saved request retains your complete relevant wording verbatim, including conditions, alongside Codex's interpretation, destination and decision. Inclusion in a plan does not mean implementation; completion requires linked conditions and evidence.
 
-After context compaction or in a fresh task, unresolved requests are read from repository files, even when no plan is active. The next task can recover the requirement, destination and next action without the previous chat.
+If the addition conflicts with an earlier requirement, Codex preserves the conflict and asks for the needed decision while continuing independent authorized work. If you explicitly cancel or replace a requirement, it keeps the original request and records your exact cancellation wording with the decision. These records are part of fresh-task recovery even when no plan is active.
 
 ## See what prevents closure
 
 ~~~text
-$project-os plan status
-~~~
-
-The agent runs plan status --require-ready before reporting readiness or suggesting publication. A blocked report starts with "NOT_READY: the outcome is not ready" and the missing acceptance, even when source tests and package checks passed.
-
-A useful response states what was implemented, what was verified and in which target, what remains for closure, which decisions or permissions are needed and where additions were routed. For example: source tests passed; the plan remains open because the remote migration and post-migration scenario are pending; the next step is inspecting the target schema. It must not call the whole feature complete.
-
-A deliberately source-only preparation plan may close without deployment when that was the agreed outcome. A required production migration cannot be relabelled as a following independent slice. A structural PASS does not prove live behavior.
-
-For example, a release ZIP is built and unit tests pass, but fresh-session addition/cancellation recovery has not been checked. The release remains NOT_READY. Run those checks on the isolated candidate before publication; publication is never a prerequisite for discovering whether the promised behavior works.
-
-## Run a Program for a multi-phase initiative
-
-Use a Program only when several plans need one shared contract. A long task by itself belongs in Standard mode.
-
-~~~text
-$project-os program start: migrate authentication across the API, workers, web and mobile without downtime
+$project-os Tell me what is complete, what remains and whether this outcome can be closed.
 ~~~
 
-Codex prepares a definition with an observable outcome, explicit authority, at least two phases, evidence requirements, cost boundaries, exclusions and exit conditions. The helper dry-runs the transition before `.agents/PROGRAM.md` is created. Starting a Program does not create a plan automatically.
+Codex checks conditions, evidence and unresolved requirements. Its report states what was implemented, what was verified and where, what prevents closure, which decisions are needed and the next action.
 
-Report current status without writing:
+For example, local tests pass but a required remote migration is pending. The outcome remains NOT_READY and the plan stays open. Moving that migration into another slice cannot make the original result complete. A deliberately source-only outcome can close without deployment when that was the agreed scope.
 
-~~~text
-$project-os program status
-~~~
-
-Close a Program only when no plan is active:
-
-~~~text
-$project-os program close completed
-$project-os program close stopped: the migration was replaced by a vendor-managed rollout
-~~~
-
-`completed` requires exit evidence. `stopped` requires a precise reason. Closure archives the exact contract with a SHA-256 digest and returns the repository to Standard.
-
-## Everyday findings and reusable lessons
-
-In a connected repository, ask Codex to implement, investigate or verify work normally. Codex should record the findings it discovers, preserve evidence and keep unresolved hypotheses distinct from confirmed mechanisms. You do not need a separate `finding add` request for every observation. Confirmed mechanisms can become project lessons; making them reusable and transferring them requires review and approval.
-
-Bounded repairs also save a finding for a reproduced defect already named by the user. Codex handles `finding record`, the checkpoint draft and its freshness check. A knowledge transfer that pauses for approval uses a small plan: the initial request and approval belong to the same contract and become implemented only after its gates are verified. After guarded completion, the idle checkpoint records the actual imported and skipped IDs, source preservation and next action. A captured request remains unresolved even if its decision text says completed. A structural check alone does not detect a checkpoint that was never updated.
-
-For a new project, open its repository in Codex and send one request:
-
-~~~text
-$project-os Reuse the useful failure lessons from /path/to/earlier-repository here. Set up Project OS if needed, prepare anything that is missing and bring over only lessons that fit this project.
-~~~
+The helper refuses closure for incomplete recorded requirements or proof. It cannot identify omitted prerequisites or validate evidence meaning. Structural PASS and checkpoint CURRENT do not prove production behavior, public availability or physical-device acceptance.
 
-Codex inspects the destination and the read-only source, prepares missing lessons from confirmed evidence, removes private context and checks applicability. It explains irrelevant or unconfirmed skips, presents one batch review of lesson changes and applies only the approved selection. It then validates the destination. Setup is previewed if the new repository is not yet connected. The source stays unchanged during transfer.
+<a id="everyday-findings-and-reusable-lessons"></a>
 
-See [Failure knowledge](../skills/project-os/references/knowledge.md) for the complete recipes, including approved libraries and portable bundles. The individual operations below are useful when you want direct control of a particular stage.
-
-## Advanced: record a particular finding and prepare a lesson
-
-The deterministic finding command accepts a temporary JSON file with title, status, impact, evidence paths and required_check. Use `--id` for an existing finding; fixed_unverified and verified also require resolution. Store real evidence in the repository before previewing:
-
-~~~shell
-python3 /absolute/path/to/project-os/scripts/project_os.py finding record --target /path/to/repository --input /private/tmp/finding.json --dry-run
-python3 /absolute/path/to/project-os/scripts/project_os.py finding record --target /path/to/repository --input /private/tmp/finding.json
-~~~
-
-If upgrade must rewrite a file used by an existing proof, Codex reviews an exact snapshot_evidence map with --finding-proof-review and preserves the old bytes atomically. The original finding then proves historical bytes through evidence_snapshots, not the upgraded file. Repeating the old finding input cannot silently approve current changed bytes; a separately reviewed --id update captures fresh evidence while retaining raw legacy values and archive files. See [Historical evidence snapshots](REFERENCE.md#historical-evidence-snapshots-during-upgrade).
-
-Save a reconciled compact checkpoint with `checkpoint --target /path/to/repository --draft /private/tmp/checkpoint.md`, previewing first with `--dry-run`. Run `checkpoint --target /path/to/repository --check --json` afterward and during fresh recovery. CURRENT verifies the saved body and referenced record hashes; it does not independently prove that the narrative or acceptance claims are complete. See [Maintenance](../skills/project-os/references/maintenance.md) for the draft fields and compatibility boundaries.
-
-Start with an observation, not an invented mechanism:
-
-~~~text
-$project-os finding add: returning from the native camera leaves the preview frozen on the affected iPhone
-~~~
-
-The finding records observed behavior, impact, available evidence and the next decisive check. It may contain hypotheses, but it must label them as unverified.
-
-After evidence confirms the mechanism, capture project knowledge:
-
-~~~text
-$project-os knowledge capture: FIND-012
-~~~
-
-The project lesson can retain local paths, repository names and evidence because it stays in the source repository. It should include applicability, trigger, mechanism, prevention, decisive verification and boundaries.
-
-Prepare reusable knowledge without writing:
-
-~~~text
-$project-os knowledge prepare: all
-~~~
+## Transfer lessons directly to a new repository
 
-Codex sanitizes the proposal by removing project names, credentials, personal data, absolute machine paths, URLs, deployment identifiers, evidence paths and copied product history. Review the proposal, then approve only entries that remain accurate and useful without the source project:
+Open the destination repository and send:
 
 ~~~text
-$project-os knowledge approve: /path/to/proposal.json all
+$project-os Reuse the useful failure lessons from /path/to/earlier-repository here. Prepare only lessons that fit this project, keep the source unchanged and show me one batch to review.
 ~~~
 
-Approval adds reviewed entries to the source repository's user-owned reusable library. It does not publish them, upload them or send them to the Project OS author.
+Codex inspects the destination and reads the source without changing it. It prefers approved reusable lessons. If the source has only confirmed findings or project lessons, it prepares sanitized proposals outside both repositories instead of requiring you to organize an intermediate command sequence.
 
-## Transfer lessons directly to a new repository
+The agent checks mechanisms, prevention, verification and boundaries against the destination. Titles and tags find candidates; they do not establish applicability. It explains exclusions and removes private context.
 
-When Codex can access both repositories on the same machine, open the destination repository and provide the source path:
+The plan saves the request, selection and pending approval. Codex presents one batch with proposed additions, their purpose, skips and conflicts. Review it, then reply:
 
 ~~~text
-$project-os knowledge import: /path/to/earlier-repository
+Approved - apply the proposed additions.
 ~~~
 
-The destination helper reads only the source reusable registry and its approved entries. The dry-run filters active lessons by declared applicability, considers lifecycle tombstones, explains skipped entries and previews target-local changes. The source repository does not change.
+You can approve a subset instead. Codex applies only the approved selection, validates the destination, checks repeated-import behavior and verifies source preservation. It records the approval and actual result, then closes the transfer through the guarded completion operation with a current checkpoint.
 
-Apply only the reviewed result, then run `$project-os check` in the destination. Destination-owned content wins on conflict and repeated imports are idempotent.
+A connected destination and accessible source usually need this request and batch approval. Missing setup permission, unavailable source files or conflicts may require separate decisions. One batch review does not waive those boundaries. An unconnected destination gets a setup preview before connection.
 
-This is the primary Codex path for moving verified failure knowledge between repositories you own. There is no background synchronization and no Project OS-managed shared database.
+Knowledge remains under your control. Transfer does not upload lessons to the Project OS author, create a shared database or enable background synchronization. Use [Reference](REFERENCE.md#user-owned-reusable-knowledge) for lifecycle and conflict rules.
 
 ## Transfer a portable bundle
 
-Use a bundle when the destination is on another machine or when ChatGPT is the companion interface.
+When repositories are on different machines, ask Codex to prepare a portable bundle of approved reusable lessons. It previews the export location outside the source repository and produces a checked bundle after the required approval.
 
-Export from the source repository:
+Supply the bundle and destination context to Codex or the ChatGPT companion. Ask which lessons fit, review the proposed batch and approve only those additions. The saved result should identify imported and skipped lessons, verification and the next action. A bundle does not carry permission to modify an unrelated project.
 
-~~~text
-$project-os knowledge export: /path/to/failure-knowledge.json
-~~~
-
-The helper previews first, then writes a deterministic JSON bundle containing approved reusable entries and complete lifecycle chains. Inspect the output location and SHA-256 before moving it.
-
-In the destination repository, import the supplied bundle:
-
-~~~text
-$project-os knowledge import: /path/to/failure-knowledge.json
-~~~
+## Upgrade Project OS
 
-Where the ChatGPT companion is available, attach the bundle and select the plugin:
+Update the selected installation using [Setup](SETUP.md#upgrade-to-230), then ask `$project-os upgrade` in each connected repository. Codex identifies the installed helper, previews changes, handles any ownership review and applies only the reviewed operation after authorization.
 
-~~~text
-@Engineering Project OS Help me reuse verified failure knowledge from an earlier project in this one.
-~~~
+The upgrade checks and saved checkpoint describe the actual result. Managed files, migration metadata and reviewed historical proof may change; application changes need their own authority. Conflicts stay pending. Do not simulate an upgrade by editing version or schema fields.
 
-ChatGPT works against the supplied bundle and project material. It cannot write to a live local checkout. Apply returned artifacts deliberately, then validate the real destination in Codex. GitHub marketplace installation applies to Codex; companion availability follows the separate [legacy Directory channel](SETUP.md#legacy-directory).
+<a id="compact-request-table"></a>
+<a id="open-and-checkpoint-a-long-task"></a>
+<a id="run-a-program-for-a-multi-phase-initiative"></a>
+<a id="advanced-record-a-particular-finding-and-prepare-a-lesson"></a>
 
-## Upgrade Project OS
+## When you want more control
 
-First update the selected GitHub plugin or standalone Codex skill using [Setup](SETUP.md), resolve duplicate installations and verify the helper version. Updating an installed copy does not update repository-local records. In each connected repository, start a new Codex task and request:
+Ask for a durable plan when an outcome spans sessions or needs explicit acceptance conditions. Standard mode is complete for normal work. Program is optional coordination for an explicitly authorized multi-phase initiative, not a prerequisite for a long task.
 
-~~~text
-$project-os upgrade
-~~~
+The [request catalog](REFERENCE.md#project-os-requests), [plan rules](REFERENCE.md#contracts-intake-and-guarded-completion), [Program contract](REFERENCE.md#standard-and-program) and [helper syntax](REFERENCE.md#helper-summary) cover direct controls. They are available when useful, not steps you must memorize for every repair or transfer.
 
-Codex uses the installed helper to inspect the current release, dry-run the upgrade, review conflicts, apply the same clean operation and run `check`. For the schema-preserving 2.2.4 upgrade, application code and project-owned knowledge must not change.
+## ChatGPT companion boundaries
 
-If a managed file has diverged from its recorded baseline, the helper reports a conflict instead of overwriting it. Resolve ownership deliberately and repeat the dry-run. Do not hand-edit `SYSTEM.release` or schema fields to simulate an upgrade.
+Select `@Engineering Project OS` for explanations, supplied project files and portable bundles. Reviewing an existing setup requires the relevant files. Changed copies remain chat artifacts until you deliberately apply them to the real checkout and validate in Codex.
 
-## ChatGPT companion boundaries
+With a runnable selected helper and permission to execute it, ChatGPT can check the supplied copy and return a validated snapshot. That snapshot must preserve hidden files and the whole checkpoint receipt, use freshly read file bytes and pass checks after the actual archive is reconstructed. A text report alone is not the returned artifact.
 
-ChatGPT can explain the system without files. It can advise on setup from a project description, inspect supplied Project OS records and work with a portable knowledge bundle.
+The agent keeps your original scoped instructions verbatim beside its interpretation, including conditions and later cancellation wording. For returned files, it inventories the actual source tree before copying and includes promised nested proposals and reports. The bundled snapshot utility can check that byte-preserving archive when execution is permitted; it does not run project checks or establish acceptance. See [complete byte snapshots](REFERENCE.md#complete-byte-snapshots).
 
-If a request asks about an existing repository and the required files are not attached, ChatGPT must ask for them. It must not inspect an empty host workspace or present a generic audit as Project OS output.
+If execution is unavailable or forbidden, ChatGPT can review readable files provisionally. It must distinguish recorded claims from checks performed now, preserve pending acceptance and leave integrity, freshness and readiness checks unverified. It must not change records, create a receipt or close a plan through this fallback. A missing helper or a genuinely older helper is reported without silently choosing a different installed copy.
 
-Use Codex for the full repository-native workflow: current Git state, applicable instructions, deterministic helper operations, exact diffs and repository checks.
+When generic file operations are allowed, ChatGPT may return a byte-preserving transport copy with actual file hashes and the full STATE receipt. That proves only the stated byte checks; it is not a helper-validated Project OS export. If reading or creating an actual downloadable file is unavailable, the response must state the limitation. Detailed capability routes are in [Reference](REFERENCE.md#interfaces).
 
 ## Safety rules
 
-- A clear `do not change files` constraint keeps the whole request read-only.
-- Ambiguous mutation requests require one focused clarification before writing.
-- Every helper mutation uses the same reviewed dry-run and apply arguments.
-- Project OS authority never implies permission to edit application code, install dependencies, delete data, commit, push, deploy, publish or contact external services.
-- A passing helper check proves Project OS structural consistency, not the truth of product claims or external evidence.
+An explicit read-only request stays read-only. Project OS does not grant permission to install dependencies, delete data, commit, push, deploy, publish or contact external systems. Necessary decisions remain yours; recording and checking the already authorized work belongs to the agent.
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