Skip to content

Reconcile front-matter specs, add wizard namespace validation, and close scenario-coverage test gaps (16.4) - #461

Closed
eXamadeus wants to merge 1 commit into
julian/07-23-document_supplementary_files_archive_0.2_per-file_lockfiles_asset-name_constraints_and_adapter_api_0.1_migrationfrom
julian/07-23-activate-supplementary-files-cli-release-gate
Closed

Reconcile front-matter specs, add wizard namespace validation, and close scenario-coverage test gaps (16.4)#461
eXamadeus wants to merge 1 commit into
julian/07-23-document_supplementary_files_archive_0.2_per-file_lockfiles_asset-name_constraints_and_adapter_api_0.1_migrationfrom
julian/07-23-activate-supplementary-files-cli-release-gate

Conversation

@eXamadeus

@eXamadeus eXamadeus commented Jul 24, 2026

Copy link
Copy Markdown
Member

Release-readiness fixes surfaced by the scenario-by-scenario verification of the support-non-asset-files delta specs (task 16.4). This is the source stack's final readiness layer; it carries no release Changeset.

Changes

  • Front-matter delta relaxation. The authoring specs required build to reject primary-asset front matter and edit to parse/strip it, but the implemented (and pre-existing) contract permits author front matter, archives it verbatim, and reconciles manifest-owned metadata over it at install time. Relaxed the build requirement, the "manifest is the source of truth for metadata" requirement, and the edit requirement to match the implementation, and corrected the design.md drift-checking rationale.
  • Wizard shared-namespace validation. Create and edit wizards validated within-type duplicates but not the skill/command shared namespace. Extracted a shared validateAssetNameInWizard helper, wired both views to it, and added unit coverage.
  • Missing-arm tests. Added a RECONCILE_OWNED_PATH_SET run-install test and a single-file command lockfile-entry test.
  • Archive-format compatibility mapping. MINIMUM_RELEASE_FOR_FORMAT['0.2'] set to the projected activation release 0.31.0, with its test updated.

Not here

The held agent-facets CLI activation Changeset lives in a separate held draft PR (#462) stacked directly on top of this one, so this readiness PR can merge with the source stack while activation stays gated.


Note

Low Risk
Documentation and authoring-spec updates plus CLI validation and test coverage; no changes to install/materialization logic beyond new regression tests.

Overview
Closes 16.4 readiness gaps from scenario-by-scenario delta verification: mostly spec ↔ implementation alignment, earlier wizard validation, and targeted tests—no held CLI Changeset.

OpenSpec / authoring contract. Build, edit, and metadata requirements no longer mandate rejecting or stripping YAML front matter on primary assets. They now state that author front matter is archived verbatim, the manifest wins on conflicts at install, and edit preserves primary bytes unless the author edits them. design.md drift-checking text is updated for the same reconciliation model.

Create/edit wizards. Shared validateAssetNameInWizard enforces the skill/command shared namespace (matching build-time collision rules) in addition to per-type duplicates; create and edit views use it. New unit tests cover grammar, duplicates, namespace collisions, and agent exemptions.

Tests and compatibility messaging. Adds RECONCILE_OWNED_PATH_SET install coverage and lockfile schema acceptance for single-file agent/command entries. Sets archive format 0.2 minimum CLI guidance to 0.31.0 (projected activation release).

tasks.md marks 16.1–16.5 done and documents 16.6–16.8 as blocked on adapter publish and registry/stage access.

Reviewed by Cursor Bugbot for commit a2958c5. Bugbot is set up for automated code reviews on this repo. Configure here.

@changeset-bot

changeset-bot Bot commented Jul 24, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: a2958c5

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 72bcca24-c588-4059-b034-bb5b6cf8ed3b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch julian/07-23-activate-supplementary-files-cli-release-gate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@eXamadeus
eXamadeus force-pushed the julian/07-23-activate-supplementary-files-cli-release-gate branch from 9aafdae to 6c0fd81 Compare July 24, 2026 04:03
@eXamadeus
eXamadeus force-pushed the julian/07-23-document_supplementary_files_archive_0.2_per-file_lockfiles_asset-name_constraints_and_adapter_api_0.1_migration branch from c91bf4f to 7c8b3c1 Compare July 24, 2026 04:03

eXamadeus commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@eXamadeus
eXamadeus marked this pull request as ready for review July 24, 2026 04:05
@greptile-apps

greptile-apps Bot commented Jul 24, 2026

Copy link
Copy Markdown

Greptile Summary

This PR closes the final readiness gaps uncovered during scenario-by-scenario verification of the support-non-asset-files delta specs (task 16.4). It reconciles spec language with the already-shipped implementation, adds the missing shared-namespace validation to the create/edit wizards, and fills test-coverage holes without touching any release Changeset.

  • Spec reconciliation — authoring and design specs now correctly describe the implemented behaviour: author-supplied YAML front matter in primary assets is preserved verbatim at build and reconciled (manifest wins) at install, replacing the former "build must reject front matter" contract.
  • Wizard namespace validation — a new validateAssetNameInWizard helper enforces the skill/command shared-namespace rule at input time (previously only enforced at build), wired into both create and edit views with full unit coverage.
  • Test gap closure — adds a RECONCILE_OWNED_PATH_SET install test and a single-file agent/command lockfile schema test; corrects MINIMUM_RELEASE_FOR_FORMAT['0.2'] from the placeholder 0.2.0 to the projected activation release 0.31.0.

Confidence Score: 5/5

Safe to merge; all changes are additive (new helper, new tests) or spec corrections, with no behavioural regressions in existing code paths.

The implementation changes are a straightforward extraction of an existing inline validation lambda into a shared helper with broader namespace awareness. The helper logic is exercised by eight targeted unit tests covering every branch. The test additions follow established fixture patterns, and the spec edits align the written contract with already-verified behaviour. Nothing in this PR modifies load-bearing persistence logic or auth boundaries.

No files require special attention.

Reviews (2): Last reviewed commit: "Reconcile front-matter specs, add wizard..." | Re-trigger Greptile

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit afec600. Configure here.

}

return undefined
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incomplete skill/command namespace checks

Medium Severity

validateAssetNameInWizard now rejects skill/command name collisions in the create/edit TUI, matching FacetManifestSchema, but headless decideCreate still only runs validateAssetNameSegment. The same collision can still be scaffolded via flags, and addAsset/renameAsset still omit the sibling-namespace guard they already apply for same-type duplicates.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit afec600. Configure here.

@eXamadeus
eXamadeus marked this pull request as draft July 24, 2026 04:28
@eXamadeus
eXamadeus force-pushed the julian/07-23-document_supplementary_files_archive_0.2_per-file_lockfiles_asset-name_constraints_and_adapter_api_0.1_migration branch from 7c8b3c1 to b48fb4b Compare July 24, 2026 04:32
@eXamadeus
eXamadeus force-pushed the julian/07-23-activate-supplementary-files-cli-release-gate branch from afec600 to ab25e67 Compare July 24, 2026 04:32
…ose scenario-coverage test gaps (16.4)

Scenario-by-scenario verification of the support-non-asset-files delta specs
surfaced findings, resolved here:

- Front-matter delta relaxation: the authoring specs required build to reject
  primary-asset front matter and edit to parse/strip it, but the implemented
  (and pre-existing) contract permits author front matter, archives it
  verbatim, and reconciles manifest-owned metadata over it at install time.
  Relaxed the build, 'manifest is source of truth for metadata', and edit
  requirements to match the implementation, and corrected the design.md
  drift-checking rationale.

- Wizard shared-namespace validation: create and edit wizards validated
  within-type duplicates but not the skill/command shared namespace. Extracted
  a shared validateAssetNameInWizard helper, wired both views to it, and added
  unit coverage.

- Missing-arm tests: added a RECONCILE_OWNED_PATH_SET run-install test and a
  single-file command lockfile-entry test.

- Archive-format compatibility mapping: MINIMUM_RELEASE_FOR_FORMAT['0.2'] set
  to the projected activation release 0.31.0, with its test updated.

The held agent-facets CLI activation Changeset is intentionally NOT here; it
lives in a separate held draft PR stacked on top.
@eXamadeus
eXamadeus force-pushed the julian/07-23-activate-supplementary-files-cli-release-gate branch from ab25e67 to a2958c5 Compare July 24, 2026 04:39
@eXamadeus eXamadeus changed the title Add held agent-facets CLI release gate for supplementary-file activation Reconcile front-matter specs, add wizard namespace validation, and close scenario-coverage test gaps (16.4) Jul 24, 2026
@eXamadeus
eXamadeus marked this pull request as ready for review July 24, 2026 04:39
@eXamadeus eXamadeus closed this Jul 24, 2026
eXamadeus added a commit that referenced this pull request Jul 24, 2026
…ion (#462)

**HELD — do not merge until authorized.**

This draft is the sole activation lever for the `support-non-asset-files` change: a single CLI-only pre-1.0 minor Changeset for `agent-facets`. It contains exactly one file — `.changeset/activate-supplementary-files.md` — and nothing else.

## What merging this does

Once merged and versioned, the released CLI flips to the already-implemented and already-merged behavior:

- `facet build` emits archive `0.2` with a complete per-entry hash map
- lockfiles/receipts use format `0.2`
- skill companions materialize atomically with their owning skill
- first-class `README` authoring in create/edit
- the CLI supported adapter API becomes exactly `{0.1}` (positional `0.0` adapters fail closed with reinstall guidance)

Projected release: **`agent-facets@0.29.0`**. No protocol or adapter changeset is included.

## Merge conditions (all required before this leaves draft)

1. The source/readiness stack through #461 is merged.
2. The adapter SDK + all three first-party adapters have published `facetAdapterApiVersion: 0.1` (16.6).
3. The deployed registry's dual-format behavior is verified (16.7).
4. A candidate `0.2` archive round-trips against the stage registry (16.8).
5. The full repository suite and strict OpenSpec validation pass (16.4/16.9).
6. **The user explicitly authorizes the Changesets version-and-publish sequence.**

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> No application code changes—only a release metadata file; operational risk is limited to timing of the version/publish sequence relative to the PR’s stated merge conditions.
> 
> **Overview**
> Adds a single **Changesets** entry (`.changeset/activate-supplementary-files.md`) that bumps **`agent-facets`** with a **pre-1.0 minor** and records the user-facing release notes for behavior already merged on `main`.
> 
> Merging and running the version/publish flow is the **activation lever**: it does not change runtime code in this diff, but it schedules the next CLI release so shipped **`agent-facets`** documents and changelog reflect archive **`0.2`**, lockfile/receipt **`0.2`**, supplementary skill companions, default **`README.md`** in create/edit, stricter manifest naming, and **adapter API `0.1` only** (positional **`0.0`** adapters fail closed). The changeset text is the authoritative consumer-facing summary of that flip.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit d0025d6. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant