Skip to content

CXF-222: skills README documents provenance and eval evidence; all ten skills name their contract sources - #17

Closed
btipling wants to merge 1 commit into
mainfrom
am/src-3naou/src-3naou-att2-impl
Closed

CXF-222: skills README documents provenance and eval evidence; all ten skills name their contract sources#17
btipling wants to merge 1 commit into
mainfrom
am/src-3naou/src-3naou-att2-impl

Conversation

@btipling

@btipling btipling commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Summary

The ten connector-authoring skills now document where every source came from. Each skill's SOURCES.md names the SDK contract (baton/*.d.ts at tag v0.0.26, with the runtime_pin_matched record) and the baton-axiomatic DSL contract it was authored against, and the three skills the issue calls out add their knowledge-provenance rows (worked builds, spec evidence, baton-admin DSL skills). The skills README states the model terms the skills were authored in and adds an ## Eval evidence section citing the deterministic, committed eval harness. This is CXF-70 PR 7: it closes the provenance rows, the eval-evidence section, and (with the companion marketplace PR) the distribution wrapper.

Linear

CXF-222: CXF-70 PR 7: README + SOURCES.md + marketplace plugin wrapper

Linear requirements

This PR meets all requirements of CXF-222; the measured pass-rate gate (requirement 3) is carried per the merged PR #10/#11 precedent, because the Tier-1 baseline E2E is structurally blocked and no pass-rate numbers exist to report.

Requirement Status Evidence
1. README per-skill provenance table in model terms (v0.0.26 DSL contract + 23-tool tenant MCP surface; validated by the eval suite) ✅ Met skills/README.md L3-8 (model terms), L10-21 (ten-row table)
2. SOURCES.md per skill — contract sources (baton/*.d.ts @ tag with runtime_pin_matched; baton-axiomatic docs/DSL.md + runtime/baton/*.d.ts @ v0.0.26) plus per-skill knowledge provenance ✅ Met skills/*/SOURCES.md ×10 — SDK-contract + baton-axiomatic rows in all ten (e.g. skills/author-in-app-connector/SOURCES.md L13-15); worked-builds rows in skills/design-access-model/SOURCES.md L13-18; spec-evidence rows in skills/source-openapi-spec/SOURCES.md L13-17; baton-admin DSL rows in skills/write-connector-source/SOURCES.md L21-24
3. Eval results as evidence (baseline vs with-skills pass rates) ✅ Carried skills/README.md L27-41 — cites the Tier-0 scored replay, unit smokes, and scorer/fixture harness; Tier-1 baseline structurally blocked (public repo ships only the Tier-0 canned driver; eval envs expose no c1_connector_authoring_* MCP tools); carried per merged PRs #10/#11; no numbers fabricated
4. Marketplace plugin wrapper (thin plugin.json + skills, installed via /plugin install <name>@<tag>) ✅ Met Companion PR ConductorOne/claude-marketplace#152plugins/connector-authoring/ vendoring all ten skills byte-identical from this branch HEAD 45aae31; registered in .claude-plugin/marketplace.json; install line /plugin install connector-authoring@c1-engineering

Release Notes

No user-facing change.

What changed

skills/README.md

Where: intro ~L3-8; new ## Eval evidence section L27-41.

What changed

Why

  • The issue requires the README to document provenance and eval evidence in model terms. The Tier-1 baseline pass rates cannot be produced here (no real-tenant driver, no c1_connector_authoring_* MCP surface on eval envs), so the section cites the deterministic evidence that exists and states the blocker instead of inventing numbers.

skills/*/SOURCES.md (ten files)

Where: end-of-table appends — author-in-app-connector, build-and-test, deploy-and-activate, diagnose-authoring-failure, read-authoring-contract, verify-connector-output L13-15; update-and-rollback L12-14; design-access-model L13-18; source-openapi-spec L13-17; write-connector-source L21-24.

What changed

  • All ten files add two contract rows: the SDK contract (baton/*.d.ts @ git tag v0.0.26, sync commit 01a69d8d, with the locked runtime_pin_matched wording) and the baton-axiomatic DSL contract (docs/DSL.md + runtime/baton/*.d.ts @ v0.0.26, full SHA 825e5516…).
  • design-access-model adds three worked-build rows (baton-axiomatic-openrouter#1, baton-axiomatic-litellm#1, baton-axiomatic-shopify) for access-model shapes.
  • source-openapi-spec adds three spec-evidence rows (OpenRouter official published spec vendored verbatim; LiteLLM runtime-generated spec via pip install "litellm[proxy]==1.92.0"app.openapi(); Shopify vendored minimal spec allengrant/shopify_openapi @ master, discoveredAt 2026-06-04).
  • write-connector-source adds two baton-admin DSL-skill rows (author-js-dsl-connector, author-auth-config-surface @ 6fe6886f…).

Why

  • The issue requires each skill's SOURCES.md to name its contract sources, including the SDK tag from list_sdk_types_versions (recorded as runtime_pin_matched) and the baton-axiomatic DSL ground truth, plus the per-skill knowledge provenance the issue names. Existing pinned rows are untouched; this is a pure delta.

Excluded

Co-authored-by: c1-squire-dev[bot] <c1-squire-dev[bot]@users.noreply.github.com>
Comment thread skills/README.md
pre-1 skills authored against the v0.0.26 DSL contract and the 23-tool
tenant MCP surface, plus three post-funnel and cross-cutting skills
(`verify-connector-output`, `update-and-rollback`,
pre-1 skills authored against the v0.0.26 DSL contract and the 23-tool tenant MCP surface; validated by the eval suite, plus three post-funnel

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Suggestion: The inserted ; validated by the eval suite, is both grammatically broken (semicolon then a comma-joined plus …) and overstated. The Tier-0 replay cited below runs evals/scenarios/tier1-directory.json, which has "skillBundle": {"mode": "none"} and a canned/static driver — so it exercises the scorer and fixture, not the skills; lines 36–41 then say the with-skills-vs-baseline measurement is structurally blocked. Consider dropping the clause (or rewording to "the eval harness scores the funnel these skills target") and re-wrapping to the file's ~70-column width.

Comment on lines +15 to +17
| OpenRouter official spec (evidence) | OpenRouter official published spec (openrouter.ai), vendored verbatim | The authoritative spec evidence for a SaaS provider with an official published spec. |
| LiteLLM runtime-generated spec (evidence) | `pip install "litellm[proxy]==1.92.0"` → `app.openapi()` | The runtime-generated spec evidence for a self-hosted OSS provider. |
| Shopify vendored minimal spec (evidence) | `allengrant/shopify_openapi` @ master, discoveredAt 2026-06-04 | The vendored minimal spec evidence for a provider without an official published spec. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Suggestion: These three rows sit in a Pin / SHA column but carry no pin: the OpenRouter row names only "openrouter.ai" with no version or retrieval date, and the Shopify row pins allengrant/shopify_openapi @ master — a moving ref, so the cited evidence can change under the same citation. skills/README.md states "Each skill's SOURCES.md names the pinned sources with their SHAs," and every pre-existing row here honors that. Pin the Shopify row to a commit SHA and give the OpenRouter row a spec version or discoveredAt date. (The LiteLLM row is fine — ==1.92.0 is a real pin.)

Comment on lines +16 to +18
| Worked build — access-model shape | baton-axiomatic-openrouter#1 | The access-model shape (resource types, traits, entitlements, grants) this worked build demonstrates. |
| Worked build — access-model shape | baton-axiomatic-litellm#1 | The access-model shape (resource types, traits, entitlements, grants) this worked build demonstrates. |
| Worked build — access-model shape | baton-axiomatic-shopify | The access-model shape (resource types, traits, entitlements, grants) this worked build demonstrates. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Suggestion: All three rows share the same label ("Worked build — access-model shape") and a byte-identical "What this skill quotes" cell, so the table gives no way to tell what each build contributes. They are also unpinned: #1 is a PR number, not a SHA, and baton-axiomatic-shopify has no ref at all — note that write-connector-source/SOURCES.md pins that same repo to 6ea2834043832f7bb21ca59111de2cf021c17518. Add SHAs and differentiate the quote cells.

| Authoring proto | c1 `2502b4cd8f59bf6614616013010ec4f0bf72f9ae` | RPC titles for every funnel step (`connector_authoring_create_draft`, `connector_authoring_create_draft_source_upload`, `connector_authoring_finalize_draft_source_upload`, `connector_authoring_build_bundle`, `connector_authoring_get_run`, `connector_authoring_run_draft_test_sync`, `connector_authoring_get_test_run_evidence`, `connector_authoring_provision_connector`, `connector_authoring_deploy_connector_instance`, `connector_authoring_mint_approval_token`); `MintApprovalTokenResponse.activation_url`. |
| Lifecycle doc | c1 `2502b4cd8f59bf6614616013010ec4f0bf72f9ae` | The 12-step order and stop-if gates; the handoff-table discipline (fill every row from the tool response of the step that produces it); step 11's human-OWNER handoff. |
| In-repo SDK declarations | connector-authoring `b7e8a616cbbb1e336b788f807a3810b08ae00bc7` | The `.d.ts` module surface the funnel's source files are authored against. |
| SDK contract (`baton/*.d.ts`) | connector-authoring git tag `v0.0.26` (sync commit `01a69d8d` "Sync baton runtime types for v0.0.26") | The `.d.ts` module surface this skill is authored against. `runtime_pin_matched`: not verifiable offline — no tenant MCP surface is reachable from the authoring env; repo tag v0.0.26 is the served default_tag when the tenant runtime pin matches (see `read-authoring-contract` for the runtime check). |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Suggestion: This new row and the pre-existing "In-repo SDK declarations" row above both describe the same subject — the .d.ts module surface this skill is authored against — but pin different commits (b7e8a616… vs. tag v0.0.26 / 01a69d8d…), with no stated relationship between them. A reader can't tell which is authoritative. Either fold the tag into the existing row or add a clause explaining that v0.0.26 is the contract version and the older SHA is the repo state the skill text was written against. Same duplication appears in all nine SOURCES.md files touched here.

| Authoring proto | c1 `2502b4cd8f59bf6614616013010ec4f0bf72f9ae` | RPC titles `connector_authoring_get_authoring_guide`, `connector_authoring_list_sdk_types_versions`, `connector_authoring_get_sdk_types`, `connector_authoring_list_authored_catalog_entries`, `connector_authoring_list_drafts`, `connector_authoring_create_draft`; `ListSDKTypesVersionsResponse` fields `default_tag` / `runtime_pin_matched`. |
| Lifecycle doc | c1 `2502b4cd8f59bf6614616013010ec4f0bf72f9ae` | Step 0 (guide read) and the handoff-table discipline (record every returned ID). |
| In-repo SDK declarations | connector-authoring `b7e8a616cbbb1e336b788f807a3810b08ae00bc7` | The `.d.ts` module surface (`@baton/runtime`, `@baton/helpers`, `@baton/types`) the tagged declarations cover. |
| SDK contract (`baton/*.d.ts`) | connector-authoring git tag `v0.0.26` (sync commit `01a69d8d` "Sync baton runtime types for v0.0.26") | The `.d.ts` module surface this skill is authored against. `runtime_pin_matched`: not verifiable offline — no tenant MCP surface is reachable from the authoring env; repo tag v0.0.26 is the served default_tag when the tenant runtime pin matches (see `read-authoring-contract` for the runtime check). |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Suggestion: The shared row text ends with "(see read-authoring-contract for the runtime check)" — a self-reference inside read-authoring-contract's own SOURCES.md. Copy-paste artifact of the row being duplicated across nine files; reword to point at this skill's own body (e.g. "the runtime check this skill performs") in this copy.

@btipling btipling changed the title Implement src-3naou-att2 CXF-222: skills README documents provenance and eval evidence; all ten skills name their contract sources Sep 5, 2026
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

General PR Review: Implement src-3naou-att2

Blocking Issues: 0 | Suggestions: 5 | Threads Resolved: 0
Criteria: Criteria status: none loaded - .claude/skills/ci-review.md was not found at trusted base bdff5edd6bbd.
Review mode: full
View review run

Review Summary

Scanned the full PR diff (11 files, +46/-3, documentation only — a new "Eval evidence" section in skills/README.md and appended provenance rows in nine SOURCES.md files) for security and correctness; there is no executable code, no dependency manifest, and no public API surface in this change, so nothing blocks merge. I verified the README's eval claims against the repo: npm run eval:run/eval:test exist in package.json, evals/scenarios/tier1-directory.json, evals/runner/score.ts, and evals/fixture/ all exist, the --scenario/--driver tier0 flags are real, and the S0–S11 JSONL record shape matches evals/README.md; the v0.0.26 tag and sync commit 01a69d8d also resolve correctly. The five suggestions are documentation-accuracy and source-pinning issues.

Security Issues

None found.

Correctness Issues

None found.

Suggestions

  • skills/README.md:4 — "; validated by the eval suite," is grammatically broken and overstates the evidence: the cited Tier-0 replay uses skillBundle.mode: "none" with a canned driver, and lines 36–41 say the with-skills measurement is blocked.
  • skills/source-openapi-spec/SOURCES.md:15-17 — OpenRouter row has no version/date and the Shopify row pins @ master (a moving ref), in a Pin / SHA column the README says must carry SHAs.
  • skills/design-access-model/SOURCES.md:16-18 — three rows share an identical label and description cell, and are pinned to PR numbers or nothing rather than SHAs.
  • skills/author-in-app-connector/SOURCES.md:14 (and the eight other SOURCES.md) — the new "SDK contract" row duplicates the existing "In-repo SDK declarations" row's subject with a different pin and no stated relationship.
  • skills/read-authoring-contract/SOURCES.md:14 — the shared row's "(see read-authoring-contract …)" pointer is self-referential in this file.
Prompt for AI agents
Verify each finding against the current code and only fix it if needed.

## Suggestions

In `skills/README.md`:
- Around line 4: The clause "; validated by the eval suite," was spliced into the
  opening sentence. It is grammatically broken (a semicolon followed by a
  comma-joined "plus ...") and factually overstated: the Tier-0 replay described
  later in the same file runs evals/scenarios/tier1-directory.json, whose
  "skillBundle" is {"mode": "none"}, via a canned/static driver, so it exercises the
  scorer and fixture rather than the skills themselves — and lines 36-41 state that
  the baseline-vs-with-skills measurement is structurally blocked. Either remove the
  clause or reword it to something accurate such as "the eval harness scores the
  S0-S11 funnel these skills target". Also re-wrap the paragraph to the file's
  existing ~70-column width; the edit left one ~110-column line.

In `skills/source-openapi-spec/SOURCES.md`:
- Around lines 15-17: Three new evidence rows sit in a "Pin / SHA" column without
  real pins. The OpenRouter row cites only "OpenRouter official published spec
  (openrouter.ai), vendored verbatim" with no spec version or retrieval date. The
  Shopify row cites "allengrant/shopify_openapi @ master", a moving branch ref, so
  the evidence can change under an unchanged citation. skills/README.md states
  "Each skill's SOURCES.md names the pinned sources with their SHAs", and every
  pre-existing row in this file honors that. Replace "@ master" with the commit SHA
  that was actually vendored, and add a spec version or discoveredAt date to the
  OpenRouter row. The LiteLLM row needs no change — "==1.92.0" is a valid pin.

In `skills/design-access-model/SOURCES.md`:
- Around lines 16-18: Three new rows all use the identical label "Worked build —
  access-model shape" and a byte-identical "What this skill quotes" cell, so the
  table conveys nothing about what each build contributes. They are also unpinned:
  "baton-axiomatic-openrouter#1" and "baton-axiomatic-litellm#1" are PR numbers, not
  SHAs, and "baton-axiomatic-shopify" carries no ref at all — note that
  skills/write-connector-source/SOURCES.md pins that same repo to
  6ea2834043832f7bb21ca59111de2cf021c17518. Give each row a commit SHA and a
  distinct description of the specific access-model detail it supplies.

In `skills/author-in-app-connector/SOURCES.md`:
- Around line 14: The new "SDK contract (`baton/*.d.ts`)" row describes the same
  subject as the pre-existing "In-repo SDK declarations" row directly above it — the
  .d.ts module surface the skill is authored against — but pins a different commit
  (tag v0.0.26 / 01a69d8d vs. b7e8a616). Nothing states which is authoritative or how
  they relate. Either merge the tag into the existing row, or add a clause making the
  relationship explicit (e.g. v0.0.26 is the contract version; the older SHA is the
  repo state the skill prose was written against). The same duplicate pair was added
  to all nine SOURCES.md files in this PR — apply the same fix consistently.

In `skills/read-authoring-contract/SOURCES.md`:
- Around line 14: The shared "SDK contract" row text ends with "(see
  `read-authoring-contract` for the runtime check)", which is a self-reference inside
  read-authoring-contract's own SOURCES.md — a copy-paste artifact of duplicating one
  row across nine files. In this file only, reword the pointer to refer to this
  skill's own body, e.g. "the runtime check this skill performs".

@linear-code

linear-code Bot commented Sep 5, 2026

Copy link
Copy Markdown

CXF-222

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No blocking issues found.

@btipling btipling closed this Sep 5, 2026
@btipling
btipling deleted the am/src-3naou/src-3naou-att2-impl branch September 5, 2026 01:09
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