← Engineering Project OSCONTENT HISTORY

Update to Engineering Project OS

Snapshot Oct 1, 2026 · 06:02 UTC · version 2.2.1

WHAT CHANGED · RULE-BASED ANALYSIS

Package or technical metadata updated

Package contents changed in 20 files: .codex-plugin/plugin.json, CHANGELOG.md, CONTRIBUTING.md, …. Open the file diff to inspect the edits.

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

Package file

Before

b638210097a0047b6db4d6d6d565573d69f23532e639786e242c7965aba1fdc3

After

ac10622ded1047e23f2b97566c855a9391507b634d8573f5d9608c4ebb30403e

Package file

Before

4dd287b706233aae594689451b14821de18bff886a0276f27f49ef6268a1bdcb

After

a3dceb64ff77475e4f6836b5341cd126da45eb43dd69a96c2f8ac23d7fabe48d

Package file

Before

12495

After

13206

Package file

Before

a2b09204fa46b6e0b14e66bc14a097ad5c672a5006508adf54949deccb68d1ca

After

da05a671e021ee4dcd751661f0ad4b6d2e04cd5788e4fdf70baf2112c00b01f2

Compare saved observations

Download comparison JSON

docs/REFERENCE.md

--- before
+++ after
@@ -1,6 +1,6 @@
 # Reference
 
-This is the technical contract for Project OS 2.2.0. Start with the [README](../README.md) if installation, plugin invocation or repository connection is still new.
+This is the technical contract for Project OS 2.2.1. Start with the [README](../README.md) if installation, plugin invocation or repository connection is still new.
 
 ## Interfaces
 
@@ -154,16 +154,18 @@
 
 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.
+
 The agent records material instructions immediately without a separate save command, resolves compatible additions into the active outcome and keeps conflicts visible for the required decision. It must read unresolved entries after compaction or in a fresh task. Alternatives discussed during brainstorming are not automatically work orders. The files do not capture chat in the background.
 
 ### Plan status
 
 ~~~shell
 python3 /absolute/path/to/project-os/scripts/project_os.py plan status --target /path/to/repository --json
-python3 /absolute/path/to/project-os/scripts/project_os.py plan status --target /path/to/repository --id 001
+python3 /absolute/path/to/project-os/scripts/project_os.py plan status --target /path/to/repository --id 001 --require-ready
 ~~~
 
-Without --id, exactly one active plan must exist. JSON reports plan_id, outcome, status, can_complete, errors, blockers, gates, related requests and following_slices. It is read-only. Invalid records return a failure status; ordinary pending work is a valid report with can_complete false. The prose report lists targets, pending actions and routed additions. Agents add their evidence-based implementation summary rather than treating this structural report as live product verification.
+Without --id, exactly one active plan must exist. JSON reports plan_id, outcome, status, ready, readiness, readiness_blockers, can_complete, errors, blockers, gates, related requests and following_slices. readiness is READY only for an active or valid completed contracted plan with no remaining obligations; otherwise NOT_READY. --require-ready returns nonzero for NOT_READY, including valid pending work. Closed legacy plans have no renewed readiness. It is read-only. Invalid records return a failure status; ordinary pending work is a valid report with can_complete false. The prose report lists targets, pending actions and routed additions. Agents add their evidence-based implementation summary rather than treating this structural report as live product verification.
 
 ### Plan complete
 
@@ -211,7 +213,7 @@
 {
   "format": "project-os-reusable-knowledge",
   "schema_version": 1,
-  "created_with": "2.2.0",
+  "created_with": "2.2.1",
   "entries": []
 }
 ~~~
@@ -500,7 +502,7 @@
 
 Release and file-format versions are separate:
 
-- Release 2.2.0 identifies the installed skill, helper, package metadata and connected `project_os_version`.
+- Release 2.2.1 identifies the installed skill, helper, package metadata and connected `project_os_version`.
 - `SYSTEM.schema_version` is 4.
 - Knowledge registries retain their own `schema_version: 1`.
 - Portable bundles use `format: project-os-reusable-knowledge` and `schema_version: 1`.
Full technical diff · 34 changed fields

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

BEFORE
"b638210097a0047b6db4d6d6d565573d69f23532e639786e242c7965aba1fdc3"
AFTER
"ac10622ded1047e23f2b97566c855a9391507b634d8573f5d9608c4ebb30403e"

changed /files/CHANGELOG.md/sha256

BEFORE
"4dd287b706233aae594689451b14821de18bff886a0276f27f49ef6268a1bdcb"
AFTER
"a3dceb64ff77475e4f6836b5341cd126da45eb43dd69a96c2f8ac23d7fabe48d"

changed /files/CHANGELOG.md/size

BEFORE
12495
AFTER
13206

changed /files/CONTRIBUTING.md/sha256

BEFORE
"a2b09204fa46b6e0b14e66bc14a097ad5c672a5006508adf54949deccb68d1ca"
AFTER
"da05a671e021ee4dcd751661f0ad4b6d2e04cd5788e4fdf70baf2112c00b01f2"

changed /files/README.md/sha256

BEFORE
"76a8d8e8d43c54f449256cc5df6aa6c30fa9ac4843c8329b4df28d11fbd457c1"
AFTER
"e2aac6a6cf45128656c65eb129677d0d496dbb3cbb9e155658d714b606c75151"

changed /files/SECURITY.md/sha256

BEFORE
"015e1a1f57439dd56a9ca24d8b77cfb3fb99528827e79a9fa23a3b1884d22a9a"
AFTER
"6a495783ee32df9721e1098b1fa7c2d39bf9d0a72f1e7c333a5548ee503e17d5"

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

BEFORE
"6d09395213d8c70fb6bcc60914748149e953e373a889cf338c7363dd483b273c"
AFTER
"2a6ad756b78af53684706c45b5e087d3696b500a1fe70dee7c60ac7f80a9e752"

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

BEFORE
12008
AFTER
12555

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

BEFORE
"9b5f1e8e49f395038468e3e900af66a8ad9a2a6479cd3f0a38d435a7966ed10d"
AFTER
"eb17c8a66fd19629211aef8d791562e72545aca89adebc8f85ba38432be8fe61"

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

BEFORE
8624
AFTER
10173

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

BEFORE
"1e5df423adc182c534976979322109eb284fb5c01606ebd99590c31a1a36e162"
AFTER
"90f1a19c5076eda06f966681327d4fb265c0a68198ab0882fa55818f5486aa31"

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

BEFORE
37854
AFTER
38447

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

BEFORE
"4687f649071fd03166e61f3270be6de5f158daff9e483809a407b057f086dbd5"
AFTER
"dc2972c71f9ff3e3ea94cb17b4fee8aab932c418cca7ee071f948c832f1c4813"

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

BEFORE
"78adb0d227c5c2570be9620369accd671584387a26b8ee1a74104da582636f2c"
AFTER
"6ec3094c2ad0983ebc40e9520256100ab02725b31a90fd48e5e1c3f87273cbc7"

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

BEFORE
11892
AFTER
12447

changed /files/plugin.json/sha256

BEFORE
"4ddd7707aea56f9db75884bb364a2eb3ee03b97d02384f9686d52dc20c85a676"
AFTER
"a39e5e2c9b409f8b0f3ffb4f2d60f05e019699e71de2b53bec57553f4cb6a854"

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

BEFORE
"b57ba4a39b31b5a6ddeaba852f72f327436cefcc1c5dc39ed4cbb469917e91af"
AFTER
"230b287aa5a8ceebbc116a38a0186ed23e56c88ca1d15f1c4870f48e0158a085"

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

BEFORE
9815
AFTER
12927

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

BEFORE
"3e3a1f5f6520cb9dac492318683f3b7e3d61e1992aaae10a66dbb6b0ef9d6066"
AFTER
"be17df5c74064e75040ca1ae2ff8fffd74d40e6b6f632f00f5375edd276b0f5a"

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

BEFORE
10690
AFTER
10986

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

BEFORE
"2bb4a630199a43bd5dbec13f78be768c6af7fbfc628811fc9cf8a6bbd12819ee"
AFTER
"f7f5536b20f639375e40e29036a1e238c814487f1880ac6fd4f46c0c689b733a"

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

BEFORE
4374
AFTER
8050

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

BEFORE
"0619bc7d55f3be473efd4a3c691e46566f14dd10df1c99b9aeb40defd2c5a7f1"
AFTER
"605c6829a0b5a2f6e76146ccfac00cc712bdca8cdf109dc6bfbcfc18c48a1e7c"

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

BEFORE
3137
AFTER
3707

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

BEFORE
"b49c996d112eb2bbaa5c6760a2bb07167ff4b67ee16137e4d7e8f861e59d8c56"
AFTER
"08e91e553ad39a7e8232d4abe1d6b04f8b3fe705294ffc58faa993192b8b60b4"

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

BEFORE
6249
AFTER
6691

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

BEFORE
"aa95e2f9d92d6cfbee8fade60fbc14f8c2b21119a04ce686b48403f45eb465cb"
AFTER
"422f9f58bf9fed1e4cef30530fbe8575f5608d06ba96856e2563d111e74eec9f"

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

BEFORE
6883
AFTER
8009

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

BEFORE
"57a2bcc80c74e07598a47fc00bdaaa6ec0574af515688ac10586ea37cc5d37ad"
AFTER
"cf48d253631705601cc1c982f3d343024b67da4e61ed1509eaac97f976024df1"

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

BEFORE
13516
AFTER
14954

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

BEFORE
"a7bf0c1d23a91e5fbfec9a8fbdd79fdf50fe62f0c90753bdcd30d4108e461fc1"
AFTER
"361af51bb0dc3b26998edbffd60c76d7acd2f68d43c29e09bc7296ce2b29e20d"

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

BEFORE
12232
AFTER
12962

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

BEFORE
"3641e1797e5617d3aa7243f265dbacab224b51ed9257ce64aae734d14bcab73f"
AFTER
"261cac5822863e8d52383affb6f915a4e5b0a955a7d891d1a62cf1a994df3809"

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

BEFORE
258291
AFTER
258974
Full snapshot data
{
  "files": {
    "LICENSE": {
      "size": 1081,
      "sha256": "2b5277a87aa3ff5fa8bf0155b36a1e7f6c2c5e099123fd5666436352670b129e"
    },
    "README.md": {
      "size": 9690,
      "sha256": "e2aac6a6cf45128656c65eb129677d0d496dbb3cbb9e155658d714b606c75151"
    },
    "SECURITY.md": {
      "size": 6012,
      "sha256": "6a495783ee32df9721e1098b1fa7c2d39bf9d0a72f1e7c333a5548ee503e17d5"
    },
    "plugin.json": {
      "size": 2734,
      "sha256": "a39e5e2c9b409f8b0f3ffb4f2d60f05e019699e71de2b53bec57553f4cb6a854"
    },
    "CHANGELOG.md": {
      "size": 13206,
      "sha256": "a3dceb64ff77475e4f6836b5341cd126da45eb43dd69a96c2f8ac23d7fabe48d"
    },
    "docs/SETUP.md": {
      "size": 6865,
      "sha256": "dc2972c71f9ff3e3ea94cb17b4fee8aab932c418cca7ee071f948c832f1c4813"
    },
    "docs/TERMS.md": {
      "size": 1918,
      "sha256": "d900fa8cb94916a77e646eca74db7a6d972379e1b671b4792786291f12858c4d"
    },
    "docs/USAGE.md": {
      "size": 12447,
      "sha256": "6ec3094c2ad0983ebc40e9520256100ab02725b31a90fd48e5e1c3f87273cbc7"
    },
    "CONTRIBUTING.md": {
      "size": 7734,
      "sha256": "da05a671e021ee4dcd751661f0ad4b6d2e04cd5788e4fdf70baf2112c00b01f2"
    },
    "assets/icon.svg": {
      "size": 641,
      "sha256": "320ef870116057315ea41f8015064f69666beb37f6a0dbbb0b46f08612976f4c"
    },
    "assets/logo.svg": {
      "size": 643,
      "sha256": "9e73a9b4c30c8ddf8056da1ae6258ef50a42c6a5b2b9fe9222cec613612f83cd"
    },
    "docs/PRIVACY.md": {
      "size": 2389,
      "sha256": "8196e7a8dd005f8e63c3ae70e7c5387bb5c9e6b343a92a6edd26084927d1588f"
    },
    "docs/PACKAGING.md": {
      "size": 10173,
      "sha256": "eb17c8a66fd19629211aef8d791562e72545aca89adebc8f85ba38432be8fe61"
    },
    "docs/REFERENCE.md": {
      "size": 38447,
      "sha256": "90f1a19c5076eda06f966681327d4fb265c0a68198ab0882fa55818f5486aa31"
    },
    "docs/HOW_IT_WORKS.md": {
      "size": 12555,
      "sha256": "2a6ad756b78af53684706c45b5e087d3696b500a1fe70dee7c60ac7f80a9e752"
    },
    ".codex-plugin/plugin.json": {
      "size": 2530,
      "sha256": "ac10622ded1047e23f2b97566c855a9391507b634d8573f5d9608c4ebb30403e"
    },
    "assets/social-preview.png": {
      "size": 48952,
      "sha256": "464a52ca13f2be4531c19db996ec0adad6080b6a04d828c7660c2e3a5c3eaf42"
    },
    "assets/social-preview.svg": {
      "size": 2914,
      "sha256": "eebe9d47501e2f3a8d13213e3a5e55c77446af0c268da48cd7fe3d5d95b49c70"
    },
    "scripts/package_plugin.py": {
      "size": 12927,
      "sha256": "230b287aa5a8ceebbc116a38a0186ed23e56c88ca1d15f1c4870f48e0158a085"
    },
    "skills/project-os/SKILL.md": {
      "size": 10986,
      "sha256": "be17df5c74064e75040ca1ae2ff8fffd74d40e6b6f632f00f5375edd276b0f5a"
    },
    ".codex-plugin/assets/logo.svg": {
      "size": 643,
      "sha256": "9e73a9b4c30c8ddf8056da1ae6258ef50a42c6a5b2b9fe9222cec613612f83cd"
    },
    "skills/project-os/evals/README.md": {
      "size": 6691,
      "sha256": "08e91e553ad39a7e8232d4abe1d6b04f8b3fe705294ffc58faa993192b8b60b4"
    },
    "skills/project-os/agents/openai.yaml": {
      "size": 375,
      "sha256": "6c2451a360c5b897d925249cd1063fcfa0ae6ce20d0c5356a9298d999e3e60e0"
    },
    "skills/project-os/evals/prompts.json": {
      "size": 11869,
      "sha256": "11f8ebe82f718731e10bedbad201eaa7bd67454bd34ca103bf528cd18059817d"
    },
    "skills/project-os/assets/packs/web.md": {
      "size": 850,
      "sha256": "b7c14b078bc66311f7602c93127445ea9c70eec73902c9e77f7e2e7a41ecb597"
    },
    ".codex-plugin/assets/composer-icon.svg": {
      "size": 641,
      "sha256": "320ef870116057315ea41f8015064f69666beb37f6a0dbbb0b46f08612976f4c"
    },
    "skills/project-os/assets/packs/data.md": {
      "size": 833,
      "sha256": "b785ef2be863917ea1b52abcb5e62d5fea29342ec3f913433b7773bfd636de02"
    },
    "skills/project-os/evals/discovery.json": {
      "size": 8010,
      "sha256": "3ab4177f0fc993d825c4e1db814e8e71f229f2942798b8729c00b2c7ebf78652"
    },
    "skills/project-os/assets/icon-large.svg": {
      "size": 643,
      "sha256": "9e73a9b4c30c8ddf8056da1ae6258ef50a42c6a5b2b9fe9222cec613612f83cd"
    },
    "skills/project-os/assets/icon-small.svg": {
      "size": 641,
      "sha256": "320ef870116057315ea41f8015064f69666beb37f6a0dbbb0b46f08612976f4c"
    },
    "skills/project-os/evals/continuity.json": {
      "size": 8009,
      "sha256": "422f9f58bf9fed1e4cef30530fbe8575f5608d06ba96856e2563d111e74eec9f"
    },
    "skills/project-os/evals/submission.json": {
      "size": 13959,
      "sha256": "cc2285a755802641d990775f3f71ea81259f7bf7669c559fd44b62aa9ec3d98d"
    },
    "skills/project-os/scripts/project_os.py": {
      "size": 258974,
      "sha256": "261cac5822863e8d52383affb6f915a4e5b0a955a7d891d1a62cf1a994df3809"
    },
    "skills/project-os/assets/packs/README.md": {
      "size": 1028,
      "sha256": "256c78e384ac70756c8192a7d1dae5449de59b86306c83bed2441a55a766cc2f"
    },
    "skills/project-os/assets/packs/mobile.md": {
      "size": 966,
      "sha256": "75653f85bcc653c6d138e1c1821e7bc768d8c85754ee1c100beb42c3c7bbc04d"
    },
    "skills/project-os/assets/packs/service.md": {
      "size": 797,
      "sha256": "c9846ee0d6509812dc49b4b3d7ac7b161722f3c6fb5acbf8378daca2d5fea8d6"
    },
    "skills/project-os/references/bootstrap.md": {
      "size": 5075,
      "sha256": "0c9d373b65d1580a2addee2670e81cddf280559efed12ebc98cf4d31a8a600e1"
    },
    "skills/project-os/references/knowledge.md": {
      "size": 7194,
      "sha256": "dac351ed896a1ab6640bf5e27e3cc74da836a97e2174abb7397ed242fcae94ae"
    },
    "skills/project-os/assets/packs/delivery.md": {
      "size": 829,
      "sha256": "61e4974af6c36377f75f5d5a80a7a9c81b39b1812c56f32205d4076a89336bb6"
    },
    "skills/project-os/evals/prepare_fixture.py": {
      "size": 14954,
      "sha256": "cf48d253631705601cc1c982f3d343024b67da4e61ed1509eaac97f976024df1"
    },
    "skills/project-os/references/maintenance.md": {
      "size": 12962,
      "sha256": "361af51bb0dc3b26998edbffd60c76d7acd2f68d43c29e09bc7296ce2b29e20d"
    },
    "skills/project-os/assets/templates/core/AGENTS.md": {
      "size": 4493,
      "sha256": "0576e6320fe2f81eab635a234606c25625e5ecdfa6ae8f26b341a38c2bd8df70"
    },
    "skills/project-os/assets/templates/program/PROGRAM.md": {
      "size": 561,
      "sha256": "02ef62d5362b0362b6533bcde4ba84c3452d796667f0a63686045fe21b5b0127"
    },
    "skills/project-os/assets/overlays/react-native-expo.md": {
      "size": 1035,
      "sha256": "f3842aa1b10fabbed1651d0ef9ed857f2a6577d63f4e74fe2d97a56752bb254b"
    },
    "skills/project-os/assets/templates/core/.agents/STATE.md": {
      "size": 739,
      "sha256": "deb7de342922767e6d5d9dc35545195693dbc5115d0e8c28edf5782b0b32daaf"
    },
    "skills/project-os/assets/templates/core/.agents/README.md": {
      "size": 1833,
      "sha256": "cf747afe6237402ccebde9a2ec322752d6724d9e662dadb673cf3e83a2d8ad2a"
    },
    "skills/project-os/assets/templates/core/.agents/CONTEXT.md": {
      "size": 1096,
      "sha256": "cac7e22dcb6bf3dd2fe32abbd6726ba3f8e96bfcd2e096ccbc5f593776b2fa02"
    },
    "skills/project-os/assets/templates/core/.agents/WORKFLOW.md": {
      "size": 8050,
      "sha256": "f7f5536b20f639375e40e29036a1e238c814487f1880ac6fd4f46c0c689b733a"
    },
    "skills/project-os/assets/templates/program/history/README.md": {
      "size": 417,
      "sha256": "5545722071313de97efc9311065e2979b1bbf7e87baa177d10e3af0328c530f8"
    },
    "skills/project-os/assets/templates/core/.agents/requests.json": {
      "size": 60,
      "sha256": "f6942bd914e9ada67b56aaccec14d4da9e4806888f5c265cee6e6018315c8935"
    },
    "skills/project-os/assets/templates/core/.agents/plans/README.md": {
      "size": 3707,
      "sha256": "605c6829a0b5a2f6e76146ccfac00cc712bdca8cdf109dc6bfbcfc18c48a1e7c"
    },
    "skills/project-os/assets/templates/core/.agents/plans/index.json": {
      "size": 138,
      "sha256": "bde14cb71b0a712b1fc338ecf98432bbc4babe4e0ed8930066c6c9fc8b4144a2"
    },
    "skills/project-os/assets/templates/core/.agents/evidence/README.md": {
      "size": 420,
      "sha256": "6d7305c99da57a53658b2e10d3d0a01bc0b96c0452f7d139feeba42554860c09"
    },
    "skills/project-os/assets/templates/core/.agents/findings/README.md": {
      "size": 513,
      "sha256": "da004b9622fd04e37b073cc744298d050fc21cfda33ee6a5826f617fc5ad47a4"
    },
    "skills/project-os/assets/templates/core/.agents/knowledge/README.md": {
      "size": 547,
      "sha256": "982e8d55715ae97ae94de270c51ad86cdc1c4de50a25152e21673471f6e3afa2"
    },
    "skills/project-os/assets/templates/core/.agents/findings/findings.json": {
      "size": 60,
      "sha256": "10eaf276f6fa7c4d4fcb45d0dc4d45f8a0566531d8c7c7ebbe6973534777f09a"
    },
    "skills/project-os/assets/templates/core/.agents/knowledge/project/failures.json": {
      "size": 76,
      "sha256": "7ce7bfa8f4813891b7883be037071b81afa56ecef5901a8cb25c61b201f46f82"
    },
    "skills/project-os/assets/templates/core/.agents/knowledge/reusable/failures.json": {
      "size": 43,
      "sha256": "406e9052d7c5782d0e70febbe2a12d5a9e72046854bdac2684c4c7909900ddc3"
    }
  }
}

SHA-256: 82edfc48a5e8c39ffd637710d222a0694aa5378800066b120ecab2958892a2d1