Skip to content

fix(solicitation-create): drop labs-side workarounds; align with connect-labs#212 end-state#407

Closed
jjackson wants to merge 1 commit into
mainfrom
emdash/post-labs-212-cleanup
Closed

fix(solicitation-create): drop labs-side workarounds; align with connect-labs#212 end-state#407
jjackson wants to merge 1 commit into
mainfrom
emdash/post-labs-212-cleanup

Conversation

@jjackson
Copy link
Copy Markdown
Owner

DRAFT — holds until jjackson/connect-labs#212 ships. Do not merge before then.

Summary

Pre-implements the ACE-side cleanup for when connect-labs#212 lands. When the four labs-side items in #212 ship:

  1. Atom inputSchema + deployed server validation align ({data: {...fields...}} envelope works as documented).
  2. questions[].framing is a first-class structured field.
  3. evaluation_criteria[].id documented as required in the atom inputSchema.
  4. is_public: true AND status: active detail pages are unauthenticated.

...this PR drops the inline workarounds the prior ACE PR (#405) added.

Changes

  • Step 6 simplified. The wire-shape fallback paragraph (flat-fields direct JSON-RPC) is removed; the MCP atom is called as documented with {program_id, data: {...solicitation fields...}}.
  • questions[].framing emits as a structured field. The literal Why we're asking: <framing>\\n\\n<text> inline anchor convention in text is dropped. Labs's public-detail template renders framing as a muted preface; solicitation-review consumes the structured key. Empty framing is a [BLOCKER].
  • evaluation_criteria[].id documented as REQUIRED in the criterion shape. The "server enforces it but inputSchema doesn't flag it" hedge is gone.
  • Step 7a-bis added. The curl-the-public-URL rendered-layer verifier is restored on top of Step 7a's get_solicitation persistence-layer check. Together they catch both "labs persisted wrong shape" (7a) and "labs persisted right shape but template can't render it" (7a-bis).

Workflow

When connect-labs#212 ships:

  1. Confirm the labs deploy: mcp__connect-labs__create_solicitation accepts a payload with structured framing, evaluation_criteria[*].id is documented in tools/list's inputSchema, public-detail URL renders for unauthenticated curls.
  2. Convert this PR from draft to ready-for-review.
  3. Auto-merge.
  4. Re-run /ace:step solicitation-create malaria-itn-app/20260521-1400 (or the next opp) to verify end-to-end.

Cross-ref

🤖 Generated with Claude Code

…ect-labs#212 end-state

DRAFT — holds until jjackson/connect-labs#212 ships. Do not merge before then.

When #212 lands, the four labs-side gaps documented in the prior PR
(#405) are resolved:

1. Atom inputSchema and deployed server validation align — `{data:
   {...fields...}}` envelope is the canonical shape, no flat-fields
   fallback needed.
2. `questions[].framing` is a first-class structured field; labs's
   public-detail template renders it as a muted preface above the
   prompt; `solicitation-review` consumes the structured key.
3. `evaluation_criteria[].id` documented as required in the atom
   inputSchema.
4. `is_public: true` AND `status: active` solicitation detail pages
   are truly unauthenticated.

This PR drops the inline workarounds the prior PR added:

- Step 6's wire-shape fallback paragraph (flat-fields direct
  JSON-RPC) removed — call the MCP atom as documented.
- `questions[].framing` emits as a structured field instead of the
  literal `Why we're asking: <framing>\n\n<text>` inline anchor in
  `text`. Empty `framing` is a [BLOCKER] (the review path can't
  score responses against a missing anchor).
- `evaluation_criteria[].id` documented as required; the prior
  "server enforces it but inputSchema doesn't flag it" hedge is
  gone.
- Step 7a-bis added — curl-the-public-URL structural verifier
  restored as the rendered-layer check on top of the
  get_solicitation persistence-layer check. Together they catch
  both "labs persisted wrong shape" and "labs persisted right
  shape but template can't render it" classes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@jjackson
Copy link
Copy Markdown
Owner Author

Superseded by #411. The premise of this draft was wrong — the labs maintainer's triage of connect-labs#212 showed that 3 of 4 'labs-side gaps' I filed were actually ACE reading a stale schema, not labs bugs. #411 ships the corrections directly to main instead of holding for a labs PR that won't be needed (#212 stays open only for the framing visual rendering / public-template ask; all four schema concerns are already met by the deployed labs MCP). The Step 7a-bis curl-the-public-URL verifier this draft planned to add is impossible — is_public: true does not mean anonymously readable, that's intentional labs behavior.

@jjackson jjackson closed this May 22, 2026
@jjackson jjackson deleted the emdash/post-labs-212-cleanup branch May 22, 2026 09:35
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