diff --git a/catalog/external/source-candidates.v1.json b/catalog/external/source-candidates.v1.json
index 929514f..f67b6a0 100644
--- a/catalog/external/source-candidates.v1.json
+++ b/catalog/external/source-candidates.v1.json
@@ -20,17 +20,17 @@
"value": "13a44970b5d1fd7a232eabc6a2abe42e7ba5c4a6a68e21484717f2b70509a0ac"
},
"acquired_at": "2026-08-28T17:07:39Z",
- "reviewed_at": "unknown",
- "review_state": "pending",
- "trust_classification": "unknown",
+ "reviewed_at": "2026-08-29",
+ "review_state": "reviewed",
+ "trust_classification": "restricted",
"compatibility": {
"required_tools": []
},
"executable_resources": "unknown",
"consumer_profile": "human-review",
"pinned_install_example": "not-installable: the supplied snapshot is an external source candidate and is not redistributed by Aether",
- "redistribution_permission": "unknown",
- "redistribution_status": "unverified"
+ "redistribution_permission": "disallowed",
+ "redistribution_status": "verified"
}
]
}
diff --git a/catalog/first-party/catalog.v1.json b/catalog/first-party/catalog.v1.json
index 53e69cf..d8f7ca2 100644
--- a/catalog/first-party/catalog.v1.json
+++ b/catalog/first-party/catalog.v1.json
@@ -1342,7 +1342,7 @@
"scope": "organization",
"source_digest": {
"algorithm": "sha256-utf8-lf",
- "value": "ba2d0baa2dc8ecbfe3f268ac64dcaf31d9ab2dccb111b2f2a8ff7f44c4441a49"
+ "value": "33c29870108626a5f73267f97120d389447f52c96bb7d2587feeb6519b724b33"
},
"source_path": "library/organization/skills/marketing/social-surface-specs/SKILL.md",
"supersedes_ids": [],
diff --git a/catalog/social-surfaces/README.md b/catalog/social-surfaces/README.md
index bbad40c..54fc650 100644
--- a/catalog/social-surfaces/README.md
+++ b/catalog/social-surfaces/README.md
@@ -10,15 +10,18 @@ and pinned subset for a Brand Kit.
`catalog.v1.json` records the supplied 2026-08-28 source snapshot by exact
SHA-256 digest, capture timestamp, and inventory counts. The source candidate
-is registered in `../external/source-candidates.v1.json` with a pending rights
-review; [#54](https://github.com/egohygiene/aether/issues/54) owns that
-decision. The archive and its SVG templates are deliberately absent from this
-repository.
+is registered in `../external/source-candidates.v1.json`. The rights review in
+[#54](https://github.com/egohygiene/aether/issues/54) permits using the source
+for creative reference, but does not establish permission to republish the
+full directory as a normalized public catalog. The archive, source-derived
+records, and SVG templates are deliberately absent from this repository. See
+[`RIGHTS_REVIEW.md`](RIGHTS_REVIEW.md) for the recorded evidence and decision.
No source-derived surface records may be added while the catalog's
-`rights_review.state` is `pending` or `rejected`. A review decision must name
-the permitted use and its evidence before changing the catalog to stable or
-release-included.
+`rights_review.state` is `rejected`. A future approval that clearly authorizes
+public normalized-record publication must name the permitted use and evidence,
+pin a new catalog version and digest, and pass ordinary release validation
+before changing the catalog to stable or release-included.
## Contract and unknowns
diff --git a/catalog/social-surfaces/RIGHTS_REVIEW.md b/catalog/social-surfaces/RIGHTS_REVIEW.md
new file mode 100644
index 0000000..6928d45
--- /dev/null
+++ b/catalog/social-surfaces/RIGHTS_REVIEW.md
@@ -0,0 +1,36 @@
+# Media Cheat Sheet rights review
+
+## Decision
+
+- Source candidate: `external/media-cheat-sheet-social-surface-snapshot`
+- Snapshot captured: `2026-08-28T17:07:39Z`
+- Snapshot SHA-256: `13a44970b5d1fd7a232eabc6a2abe42e7ba5c4a6a68e21484717f2b70509a0ac`
+- Terms reviewed:
+- Terms last updated by the source: `2026-08-21`
+- Review date: `2026-08-29`
+- Reviewer: OpenAI Codex, applying Aether's conservative source-governance policy; this is a repository publication decision, not legal advice.
+- Decision record:
+- Resulting catalog version: `1.0.1`
+- Resulting catalog digest (`sha256-utf8-lf`): `cc8186add31b923ceabdd0516c8f959823b36a0397262c2a03a1eef6d380e17e`
+
+| Use | Decision | Evidence and boundary |
+| --- | --- | --- |
+| Private/internal reference | Permitted for creative work | The terms allow using specifications and guidance for personal or commercial creative work, subject to live verification. |
+| Public normalized factual catalog | Not authorized from this snapshot | The terms do not expressly permit republication of the full specification directory; website content remains protected and only limited quotation/linking is identified. Aether therefore treats bulk normalized publication as disallowed. |
+| Raw archive or SVG template redistribution | Prohibited | Templates may be used, modified, and shared with same-project collaborators, but may not be republished or redistributed as a competing library or standalone product. Aether does not redistribute them at all. |
+
+## Repository consequences
+
+- The catalog remains experimental and contains zero source-derived records.
+- The source candidate is reviewed but restricted and non-publishable.
+- The archive and its 302 SVG templates remain absent.
+- The catalog and skill remain useful as an offline contract, deterministic
+ query implementation, synthetic fixture, provenance record, and consumer
+ lock boundary.
+- A future independently gathered official-source catalog, or explicit
+ permission covering normalized republication, must use a new version and
+ digest and pass the normal Aether release gate.
+
+Platform specifications can change. Any production use must verify selected
+requirements against the linked official platform source before publishing or
+spending money.
diff --git a/catalog/social-surfaces/catalog.v1.json b/catalog/social-surfaces/catalog.v1.json
index f3bcd60..016c934 100644
--- a/catalog/social-surfaces/catalog.v1.json
+++ b/catalog/social-surfaces/catalog.v1.json
@@ -2,7 +2,7 @@
"schema_version": "aether.social-surface-catalog/v1",
"catalog": {
"id": "catalog/social-surface-specs",
- "version": "1.0.0",
+ "version": "1.0.1",
"lifecycle": {
"state": "experimental"
},
@@ -21,14 +21,14 @@
"template_count": 302
},
"rights_review": {
- "state": "pending",
- "reviewed_at": null,
+ "state": "rejected",
+ "reviewed_at": "2026-08-29",
"decision_reference": "https://github.com/egohygiene/aether/issues/54",
- "notes": "The supplied source describes use as personal and non-commercial. Live terms and redistribution rights must be reviewed before any source-derived record is published in this public catalog."
+ "notes": "Terms reviewed on 2026-08-29 permit using specifications for personal or commercial creative work, but do not expressly authorize republication of the full directory as a public normalized catalog. Website content remains protected and template republication is prohibited. Aether therefore publishes no source-derived records or templates from this snapshot."
},
"release": {
"included": false,
- "reason": "Experimental catalog: source-rights review is pending, so no source-derived records or templates are distributed."
+ "reason": "Experimental metadata-only catalog: the source-rights review did not authorize public redistribution of normalized records or templates."
}
},
"records": []
diff --git a/dist/catalogs/social-surface-specs/catalog.v1.json b/dist/catalogs/social-surface-specs/catalog.v1.json
index f3bcd60..016c934 100644
--- a/dist/catalogs/social-surface-specs/catalog.v1.json
+++ b/dist/catalogs/social-surface-specs/catalog.v1.json
@@ -2,7 +2,7 @@
"schema_version": "aether.social-surface-catalog/v1",
"catalog": {
"id": "catalog/social-surface-specs",
- "version": "1.0.0",
+ "version": "1.0.1",
"lifecycle": {
"state": "experimental"
},
@@ -21,14 +21,14 @@
"template_count": 302
},
"rights_review": {
- "state": "pending",
- "reviewed_at": null,
+ "state": "rejected",
+ "reviewed_at": "2026-08-29",
"decision_reference": "https://github.com/egohygiene/aether/issues/54",
- "notes": "The supplied source describes use as personal and non-commercial. Live terms and redistribution rights must be reviewed before any source-derived record is published in this public catalog."
+ "notes": "Terms reviewed on 2026-08-29 permit using specifications for personal or commercial creative work, but do not expressly authorize republication of the full directory as a public normalized catalog. Website content remains protected and template republication is prohibited. Aether therefore publishes no source-derived records or templates from this snapshot."
},
"release": {
"included": false,
- "reason": "Experimental catalog: source-rights review is pending, so no source-derived records or templates are distributed."
+ "reason": "Experimental metadata-only catalog: the source-rights review did not authorize public redistribution of normalized records or templates."
}
},
"records": []
diff --git a/dist/catalogs/social-surface-specs/distribution-manifest.v1.json b/dist/catalogs/social-surface-specs/distribution-manifest.v1.json
index baf0f3f..46bb99f 100644
--- a/dist/catalogs/social-surface-specs/distribution-manifest.v1.json
+++ b/dist/catalogs/social-surface-specs/distribution-manifest.v1.json
@@ -1,17 +1,17 @@
{
"catalog_digest": {
"algorithm": "sha256-utf8-lf",
- "value": "fbe8a65f103aa3806bd1e9abb3d1661d0594cc88fdaac6a3f764943e22d503bb"
+ "value": "cc8186add31b923ceabdd0516c8f959823b36a0397262c2a03a1eef6d380e17e"
},
"catalog_id": "catalog/social-surface-specs",
- "catalog_version": "1.0.0",
+ "catalog_version": "1.0.1",
"generated_paths": [
"dist/catalogs/social-surface-specs/catalog.v1.json",
"dist/catalogs/social-surface-specs/distribution-manifest.v1.json"
],
"generator": "catalog/social-surfaces/build-distribution.py",
"publication": {
- "reason": "Experimental catalog: source-rights review is pending, so no source-derived records or templates are distributed.",
+ "reason": "Experimental metadata-only catalog: the source-rights review did not authorize public redistribution of normalized records or templates.",
"state": "blocked"
},
"schema_version": "aether.catalog-distribution-manifest/v1"
diff --git a/dist/skills/social-surface-specs/SKILL.md b/dist/skills/social-surface-specs/SKILL.md
index bf8092d..086c3c3 100644
--- a/dist/skills/social-surface-specs/SKILL.md
+++ b/dist/skills/social-surface-specs/SKILL.md
@@ -3,7 +3,7 @@ name: social-surface-specs
description: Select and explain pinned social-media or advertising creative surfaces from a provenance-governed offline catalog. Use when work needs platform placement, dimensions, media limits, safe zones, or organic-versus-advertising distinctions.
license: MIT
metadata:
- aether-version: "1.0.0"
+ aether-version: "1.0.1"
aether-status: "experimental"
aether-scope: "organization"
aether-domain: "marketing"
@@ -63,6 +63,7 @@ consequential, paid, or production requirements, verify the record's linked
official source and say that a live check occurred. Do not copy source-pack
templates, inject unpublished source data, or change rights/review status.
-The current catalog is experimental and rights-pending. Its empty records list
-is intentional: the source archive is registered by digest but is not
-redistributed through this skill until an explicit review authorizes that use.
+The current catalog is experimental and metadata-only. Its empty records list
+is intentional: the source review permits creative reference but did not
+authorize republication of the full directory as a normalized public catalog.
+The skill must not redistribute the source archive, records, or templates.
diff --git a/dist/skills/social-surface-specs/distribution-manifest.v1.json b/dist/skills/social-surface-specs/distribution-manifest.v1.json
index 011bbc7..dadb60d 100644
--- a/dist/skills/social-surface-specs/distribution-manifest.v1.json
+++ b/dist/skills/social-surface-specs/distribution-manifest.v1.json
@@ -1,6 +1,6 @@
{
"artifact_id": "skill/social-surface-specs",
- "artifact_version": "1.0.0",
+ "artifact_version": "1.0.1",
"compatibility": {
"required_tools": []
},
@@ -19,6 +19,6 @@
"schema_version": "aether.distribution-manifest/v1",
"source_digest": {
"algorithm": "sha256-utf8-lf",
- "value": "ba2d0baa2dc8ecbfe3f268ac64dcaf31d9ab2dccb111b2f2a8ff7f44c4441a49"
+ "value": "33c29870108626a5f73267f97120d389447f52c96bb7d2587feeb6519b724b33"
}
}
diff --git a/dist/skills/social-surface-specs/references/freshness-and-rights.md b/dist/skills/social-surface-specs/references/freshness-and-rights.md
index 9b124fe..690e6a2 100644
--- a/dist/skills/social-surface-specs/references/freshness-and-rights.md
+++ b/dist/skills/social-surface-specs/references/freshness-and-rights.md
@@ -9,7 +9,9 @@ linked official source, verify the relevant values, and note the check in the
handoff. If the live source differs, do not silently edit the pinned catalog:
submit a reviewed catalog update with a new source snapshot and release lock.
-The external source candidate has a pending redistribution review in
-[#54](https://github.com/egohygiene/aether/issues/54). Do not copy the source
-archive, SVG templates, or source-derived records into another repository
-unless the recorded rights decision explicitly authorizes that use.
+The external source candidate's redistribution review is recorded in
+[#54](https://github.com/egohygiene/aether/issues/54). The reviewed terms allow
+using specifications for creative work, but do not expressly authorize
+republication of the full directory as a normalized public catalog. Do not
+copy the source archive, SVG templates, or source-derived records into another
+repository unless a later recorded decision explicitly authorizes that use.
diff --git a/dist/skills/social-surface-specs/references/social-surface-catalog.v1.json b/dist/skills/social-surface-specs/references/social-surface-catalog.v1.json
index f3bcd60..016c934 100644
--- a/dist/skills/social-surface-specs/references/social-surface-catalog.v1.json
+++ b/dist/skills/social-surface-specs/references/social-surface-catalog.v1.json
@@ -2,7 +2,7 @@
"schema_version": "aether.social-surface-catalog/v1",
"catalog": {
"id": "catalog/social-surface-specs",
- "version": "1.0.0",
+ "version": "1.0.1",
"lifecycle": {
"state": "experimental"
},
@@ -21,14 +21,14 @@
"template_count": 302
},
"rights_review": {
- "state": "pending",
- "reviewed_at": null,
+ "state": "rejected",
+ "reviewed_at": "2026-08-29",
"decision_reference": "https://github.com/egohygiene/aether/issues/54",
- "notes": "The supplied source describes use as personal and non-commercial. Live terms and redistribution rights must be reviewed before any source-derived record is published in this public catalog."
+ "notes": "Terms reviewed on 2026-08-29 permit using specifications for personal or commercial creative work, but do not expressly authorize republication of the full directory as a public normalized catalog. Website content remains protected and template republication is prohibited. Aether therefore publishes no source-derived records or templates from this snapshot."
},
"release": {
"included": false,
- "reason": "Experimental catalog: source-rights review is pending, so no source-derived records or templates are distributed."
+ "reason": "Experimental metadata-only catalog: the source-rights review did not authorize public redistribution of normalized records or templates."
}
},
"records": []
diff --git a/library/organization/skills/marketing/social-surface-specs/SKILL.md b/library/organization/skills/marketing/social-surface-specs/SKILL.md
index bf8092d..086c3c3 100644
--- a/library/organization/skills/marketing/social-surface-specs/SKILL.md
+++ b/library/organization/skills/marketing/social-surface-specs/SKILL.md
@@ -3,7 +3,7 @@ name: social-surface-specs
description: Select and explain pinned social-media or advertising creative surfaces from a provenance-governed offline catalog. Use when work needs platform placement, dimensions, media limits, safe zones, or organic-versus-advertising distinctions.
license: MIT
metadata:
- aether-version: "1.0.0"
+ aether-version: "1.0.1"
aether-status: "experimental"
aether-scope: "organization"
aether-domain: "marketing"
@@ -63,6 +63,7 @@ consequential, paid, or production requirements, verify the record's linked
official source and say that a live check occurred. Do not copy source-pack
templates, inject unpublished source data, or change rights/review status.
-The current catalog is experimental and rights-pending. Its empty records list
-is intentional: the source archive is registered by digest but is not
-redistributed through this skill until an explicit review authorizes that use.
+The current catalog is experimental and metadata-only. Its empty records list
+is intentional: the source review permits creative reference but did not
+authorize republication of the full directory as a normalized public catalog.
+The skill must not redistribute the source archive, records, or templates.
diff --git a/library/organization/skills/marketing/social-surface-specs/references/freshness-and-rights.md b/library/organization/skills/marketing/social-surface-specs/references/freshness-and-rights.md
index 9b124fe..690e6a2 100644
--- a/library/organization/skills/marketing/social-surface-specs/references/freshness-and-rights.md
+++ b/library/organization/skills/marketing/social-surface-specs/references/freshness-and-rights.md
@@ -9,7 +9,9 @@ linked official source, verify the relevant values, and note the check in the
handoff. If the live source differs, do not silently edit the pinned catalog:
submit a reviewed catalog update with a new source snapshot and release lock.
-The external source candidate has a pending redistribution review in
-[#54](https://github.com/egohygiene/aether/issues/54). Do not copy the source
-archive, SVG templates, or source-derived records into another repository
-unless the recorded rights decision explicitly authorizes that use.
+The external source candidate's redistribution review is recorded in
+[#54](https://github.com/egohygiene/aether/issues/54). The reviewed terms allow
+using specifications for creative work, but do not expressly authorize
+republication of the full directory as a normalized public catalog. Do not
+copy the source archive, SVG templates, or source-derived records into another
+repository unless a later recorded decision explicitly authorizes that use.
diff --git a/tests/test_social_surface_catalog.py b/tests/test_social_surface_catalog.py
index 40857f1..e0d1963 100644
--- a/tests/test_social_surface_catalog.py
+++ b/tests/test_social_surface_catalog.py
@@ -37,8 +37,13 @@ def test_source_candidate_is_registered_without_raw_archive_or_templates(self):
)
candidate = candidate_catalog["entries"][0]
self.assertEqual(candidate["id"], "external/media-cheat-sheet-social-surface-snapshot")
- self.assertEqual(candidate["review_state"], "pending")
- self.assertEqual(candidate["redistribution_permission"], "unknown")
+ self.assertEqual(candidate["review_state"], "reviewed")
+ self.assertEqual(candidate["trust_classification"], "restricted")
+ self.assertEqual(candidate["redistribution_permission"], "disallowed")
+ self.assertEqual(candidate["redistribution_status"], "verified")
+ catalog = json.loads((CATALOG_DIR / "catalog.v1.json").read_text(encoding="utf-8"))
+ self.assertEqual(catalog["catalog"]["rights_review"]["state"], "rejected")
+ self.assertEqual(catalog["records"], [])
self.assertFalse(any(path.suffix.lower() == ".svg" for path in CATALOG_DIR.rglob("*")))
self.assertFalse((ROOT / "catalog/social-surfaces/social-media-specs.zip").exists())
@@ -69,7 +74,7 @@ def test_catalog_distribution_is_deterministic_and_lockable(self):
(output / "catalogs/social-surface-specs/distribution-manifest.v1.json").read_text(encoding="utf-8")
)
self.assertEqual(manifest["catalog_id"], "catalog/social-surface-specs")
- self.assertEqual(manifest["catalog_version"], "1.0.0")
+ self.assertEqual(manifest["catalog_version"], "1.0.1")
self.assertRegex(manifest["catalog_digest"]["value"], r"^[a-f0-9]{64}$")
self.assertEqual(manifest["publication"]["state"], "blocked")