Skip to content

feat(scores): interview contract — free-form asks use question text kind (#245) - #247

Merged
jeonghun-jj-lee merged 5 commits into
mainfrom
amico/issue-245-text-card-questions
Aug 4, 2026
Merged

feat(scores): interview contract — free-form asks use question text kind (#245)#247
jeonghun-jj-lee merged 5 commits into
mainfrom
amico/issue-245-text-card-questions

Conversation

@jeonghun-jj-lee

Copy link
Copy Markdown
Contributor

Closes #245.

Companion engine PR: harmoniqs/opencode#113 — that PR must merge and release first; this one stays draft until it picks up the resulting pin (see "Why draft" below).

What

  • Compiled interview contract (src/scores/compiler.ts): the one-sentence rule — every question is a card via the native question tool; choice questions list options (recommended first); free-form questions take text via kind: "text". "Free-form answers can be plain text" is gone from the contract.
  • Score bodies (scores/overture/SCORE.md, scores/pulse-designer/SCORE.md): the same change in both bodies. Choice-question instructions (options, recommended-first, typed-custom-answer row) are untouched.

Test evidence

  • pnpm --filter amicode test -- test/scores: 13 files / 138 tests green, including new compiled-prompt assertions on both compileScore(pulse-designer) and compileChainedScore(overture, pulse-designer) — the text-kind instruction is present, the plain-text phrasing is gone, and choice-question contract text is undisturbed. pnpm --filter amicode run typecheck: clean.
  • Full fast suite: 852 pass / 3 pre-existing environment-dependent fails (server_auth.test.ts AMICO_PYTHON venv path — reproduce identically on pristine main).

Why draft — rides the engine pin

Per the issue's Key Decisions, this contract text ships with the next engine pin, not ahead of it: the currently pinned engine (v1.18.10-amicode.1) does not know kind: "text", so merging now would instruct a field the vendored engine cannot honor.

Merge sequence:

  1. The fork PR merges → the next fork release (vX.Y.Z-amicode.N) is cut.
  2. This PR picks up the pin bump: packages/extension/opencode.lock.json + re-vendor.
  3. Mark ready → merge → closes BUG: Onboarding profile step is multiple-choice only — no free-text entry for name #245.

Orchestrated via amicode /develop (issue-DAG walk — single-slice unit, TDD per slice).

@jeonghun-jj-lee
jeonghun-jj-lee marked this pull request as ready for review August 4, 2026 04:04
@jeonghun-jj-lee
jeonghun-jj-lee force-pushed the amico/issue-245-text-card-questions branch from 2105558 to 059ed70 Compare August 4, 2026 04:21
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 2d1ea05 into main Aug 4, 2026
6 checks passed
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.

BUG: Onboarding profile step is multiple-choice only — no free-text entry for name

1 participant