Skip to content

feat: core-concept /hey csinterview and /hey morecs follow-up interviews - #23

Merged
thisis-joe merged 25 commits into
mainfrom
codex/csinterview
Oct 27, 2026
Merged

thisis-joe merged 25 commits into
mainfrom
codex/csinterview

Conversation

@thisis-joe

Copy link
Copy Markdown
Owner

Summary

  • /hey csinterview rewrite: 2 questions per run, on the most core CS concepts the change relies on. The prompt adds a senior-interviewer bar, ranks candidate concepts (fundamentality > relevance > cost of not knowing > transferability), and requires that both a candidate who lacks the concept and one who only knows its definition get the question wrong.
    • Each question goes one layer below the definition. Look-up details and name/definition picking are banned.
    • The prompt follows a candidate → select → self-review procedure with repo-agnostic examples.
  • New /hey morecs: up to 4 questions anchored on the latest csinterview/morecs batch of the revision.
    • The default is 3 follow-ups (꼬리N) plus 1 new interview question (면접N), or 4 follow-ups when no new core concept qualifies.
    • Every 면접 question in the anchor batch gets a follow-up. Batches are never padded and a shortfall is explained.
    • Each follow-up shows ↳ 면접2에서 이어짐. Questions are deduped against the revision history, with 5 runs per revision.
  • Teaching keys:
    • 면접/꼬리 explanations run up to 5 sentences.
    • Wrong-option notes name the confused concept and may bold up to 2 spans. Bold renders as escaped <b>, and unmatched or clipped markers are dropped.
    • A wrong bare letter leads with that option's note. Reasoned grading names the missed concept.
  • Enforced giveaway check: each generated question carries check (definition-only pick, verbatim stem quote, giveaway flag). The controller drops failing questions instead of failing the batch.
  • Other changes:
    • GMS, Codex and Claude schemas are registered for morecs, and the runner admits the phase.
    • answer accepts 꼬리N, and showanswer recognizes 꼬리-only threads.
    • The morecs model budget is 240 s.
    • Help, both READMEs, plan, demo and examples are updated.
    • The merge gate is unchanged.
  • Merge from main: brings in the GMS usage logging ([S15P31E102-138] GMS 요청 사용량 로깅 #22). main also gains the n8n orchestration and earlier csinterview work that production already runs.

Verification

  • npm test 192/192 and node scripts/integration.mjs 71/71 on the merge commit, and examples match the demo.
  • Tests cover 3+1, 4+0, shortfall, coverage, invalid anchors, anchor switch, limits, mixed 꼬리2 B 면접3 C, 꼬리-only reveal threads, bold rendering at every clip position, the giveaway check, and legacy batches. Isolated mutations of the new rules were all caught.
  • Real GMS gpt-6.1-sol on 4 commits of this repo, with "before" (old prompt) and "after" plus 3 chained morecs per sample, scored by an independent reviewer against a rubric fixed before generation.
    • Final round: coreDepth 4.20, nonNiche 4.78, learningValue 5.00, 0 bare-definition, 0 ambiguous.
    • Old prompt: 3.55 / 4.50 / 3.15, with 2 bare-definition.
    • Full report: docs/verification/csinterview-morecs-2026-10-26/README.md.

Not verified

  • One run per sample, in one repository, with a single independent reviewer.
  • Codex and Claude providers were tested only with fake binaries.
  • Remaining weaknesses: morecs round-3 grounding (3.53) and repeated themes across samples.

Deploy note

The runner must accept the morecs phase before the controller sends it, so replace both together.

🤖 Generated with Claude Code

thisis-joe and others added 25 commits October 25, 2026 16:26
The additional-question batch is now requested with /hey whatelse; the
old name is no longer recognized. Help text, hints, error messages,
READMEs, plan and examples are updated, and the parser test asserts the
old name is rejected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Paired controller/runner release 25312d1 with protected backups, an
isolated rehearsal on a restored production copy and a compatible
rollback controller. Records verification evidence and the rollback
command.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Rewrite the interview prompt around a senior-interviewer persona and a
ranked core-concept bar (fundamentality > relevance > cost of not
knowing > transferability). Questions must defeat both a candidate who
lacks the concept and one who can only recite its definition, ask one
layer below the definition, and avoid look-up details and name-picking.
The prompt adds a candidate -> select -> self-review procedure,
repo-agnostic good/bad examples and a teaching-key contract.

- csinterview returns two questions; fewer require a shortfall reason
- interview keys may explain in up to five sentences (2000 chars)
- wrong-option notes may bold up to two phrases with **...**; segments
  are escaped first and rendered as <b>, dropping unmatched or clipped
  markers
- a wrong bare letter leads with the stored note for that option;
  reasoned grading must name the missed concept
- interview prompts receive labelled priorQuestions
- demo fixture replaces the name-picking anti-pattern

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/hey morecs anchors on the latest csinterview or morecs batch of the
revision and asks up to four questions one layer below it: three
follow-ups plus one new interview question when an uncovered core
concept qualifies, otherwise four follow-ups. Every 면접 question of the
anchor batch needs a follow-up unless the model explains why; fewer
than four require a shortfall reason, and nothing is padded.

- output adds kind (followup|interview) and anchor (label or null);
  code checks anchors against the anchor batch, coverage, at most one
  new interview question and duplicates across the revision history
- follow-ups are numbered 꼬리N, new interview questions continue 면접N;
  morecs batches store their labels and show "↳ 면접2에서 이어짐" in
  question, grade and answer-sheet comments
- answer accepts 꼬리N; showanswer recognizes 꼬리-only threads
- separate five-run limit; no interview batch points to csinterview
- GMS, Codex and Claude register the morecs schema; the runner admits
  the phase; the merge gate is unchanged (it reads only Q questions)
- legacy kindless batches and five-question interview batches keep
  their numbers and can anchor morecs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Update both READMEs, the implementation plan and command help for the
two-question csinterview bar and the morecs anchor, numbering, limit
and grading rules. The demo adds a morecs batch anchored on the demo
interview pair with a mixed 꼬리/면접 grade and thread reveal; the
public examples are regenerated from it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Real GMS runs needed 109 s for the first four-question batch and timed
out three times at 120 s once the anchor batch held four questions.
Leases are heartbeated during command steps and n8n polls without a
total cap, so only the call budget limited it. csinterview keeps 120 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…questions

Round-2 real GMS outputs showed follow-ups naming an anchor whose
concept they did not deepen, new interview questions solvable by one
complexity formula, and an answer resting on an assumed OS facility.
The shared exclusions now name the last two, and morecs requires the
anchor to be the question the follow-up deepens and a new interview
question to beat the remaining follow-ups.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Independent scoring of round-3 real outputs found coreDepth 3.73 and
falling grounding (3.62 -> 2.56 -> 2.31) across morecs rounds: later
follow-ups added subsystems the change never has (replication,
partitions, MAC encoding, version stores), repeated judgments under
other anchors and filled distractors with formal variants. Follow-up
assumptions may now change only one condition of a mechanism the
change uses; otherwise a new core interview question is preferred.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The prompt said a location only had to be a readable line, but the
validator accepts only lines inside the diff hunks. Round-5 real runs
cited workflow.ts:90/94 and controller.ts:113 (outside their hunks),
failing a morecs job on all three attempts twice. The prompt now
states the rule and points to the nearest hunk line that uses the code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixed rubric, independent per-question scores, raw outputs for every
round, run statistics and the iteration log. Final after+morecs scores:
coreDepth 4.11, nonNiche 4.88, learningValue 4.98, 0 ambiguous and one
bare-definition question; the new csinterview alone meets every target.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The final independent scoring flagged s4 꼬리1 as bare-definition: its
goal sentence ('do not disclose beyond the target') was the correct
option. Both prompts now give this example, require the goal to state
only the outcome, and require every wrong option to claim it meets
that goal too; self-review checks both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The prompt fixes and verification records were first committed on
feat(be)/138-GMS_호출_횟수_절감 after another session switched the
checkout. Their cherry-picks here have new SHAs; the docs now cite them
and map the tested commits recorded in runs.json to these.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Round 7 (prompt 16cabe3) raised knowledge+application, distractors and
grounding and kept coreDepth/nonNiche/learningValue above 4 with 0
ambiguous, but two questions still restate the answer in their stated
goal, so the bare-definition target of 0 remains unmet. Adds round-7
outputs, scores and run records, and the branch reconciliation note.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Prompt wording alone left stems whose stated goal restates the answer
(2 bare-definition flags in round 7). A string-overlap check was
calibrated on 188 scored real questions and rejected: the 5 flagged
questions were indistinguishable from good ones lexically.

Each csinterview/morecs question now carries a required check: the
option a definition-only candidate would pick, why, the stem sentence
nearest the answer quoted verbatim, and a giveaway flag. The controller
drops a question when the pick equals the key, the quote is not in the
stem, or it declares a giveaway; survivors are kept with an explained
shortfall, nothing is padded, and the check is not stored.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The enforced giveaway check (6e34bfa) produced 0 bare-definition and
0 ambiguous questions across 54 real outputs, with coreDepth 4.20,
nonNiche 4.78 and learningValue 5.00. Adds round-8 outputs, scores,
run records and the remaining weaknesses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every sample has a real before run (rounds 2 and 4) and a final after
run with three chained morecs (round 8); the table shows each sample's
averages so the comparison does not rely on pooled numbers alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	docs/operations.md
#	docs/progress.md
@thisis-joe
thisis-joe merged commit dfe1209 into main Oct 27, 2026
2 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.

1 participant