원클릭으로
solve
Solve a Linguistics Olympiad Rosetta Stone problem
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Solve a Linguistics Olympiad Rosetta Stone problem
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | solve |
| description | Solve a Linguistics Olympiad Rosetta Stone problem |
| disable-model-invocation | true |
| argument-hint | [file-path] |
If $ARGUMENTS is not empty:
/ or ./, or ends with .md or .txt)$ARGUMENTS as inline problem textIf $ARGUMENTS is empty:
/solve examples/problem.md)."/ or ./, or ends with .md or .txt), read that fileStore the resulting text as the raw problem text for subsequent steps.
date +"%Y-%m-%d_%H-%M-%S" via BashWORKSPACE="claude-code/workspace/{timestamp}"mkdir -p "$WORKSPACE/hypotheses/round-1"
$WORKSPACE/problem-raw.md using the Write toolPrint: "Extracting problem structure..."
Use the extractor agent:
{WORKSPACE}/problem-raw.md{WORKSPACE}/problem.mdAfter the extractor completes:
{WORKSPACE}/problem.md exists using the Bash tool (test -f)"Extraction failed -- no problem.md produced. Aborting." and stopThis loop runs up to 3 rounds. For each round N (starting at 1):
Round 1:
Print: "Round 1: Generating 3 perspectives..."
Read {WORKSPACE}/problem.md and generate 3 diverse linguistic perspectives. For each perspective, create:
Choose from angles such as: morphological analysis (affixes, roots, agglutination), syntactic analysis (word order, modifier placement), phonological analysis (sound changes, vowel harmony), agreement/concord patterns (person, number, gender, case), semantic/pragmatic features (tense, aspect, evidentiality), orthographic patterns (special characters, spelling rules). Ensure all 3 perspectives are genuinely different angles.
Round 2+:
Print: "Round {N}: Analyzing gaps and generating targeted perspectives..."
Read {WORKSPACE}/verification.md from the previous round. Identify which rules failed and which sentences had errors. Generate 2-3 targeted perspectives that address the specific failures and gaps. Create the round directory:
mkdir -p "$WORKSPACE/hypotheses/round-{N}"
For each perspective P (1 to the number of perspectives), sequentially:
Print: "Generating perspective {P} of {count}: {perspective_name}..."
Use the hypothesizer agent:
{WORKSPACE}/problem.md{name} -- {description}{N}, Perspective: {P}{WORKSPACE}/hypotheses/round-{N}/perspective-{P}.mdRead baseline rules and vocabulary from: {WORKSPACE}/solution.mdAfter the hypothesizer completes:
{WORKSPACE}/hypotheses/round-{N}/perspective-{P}.md exists"Perspective {P} failed -- continuing with remaining perspectives" and append the error to {WORKSPACE}/errors.mdFor each perspective P that produced an output file, sequentially:
Print: "Verifying perspective {P}: {perspective_name}..."
This is the multi-call verification orchestration. The /solve skill itself orchestrates individual verifier calls and aggregates results.
Step 4c.1: Extract rules and sentences from perspective and problem
Read {WORKSPACE}/hypotheses/round-{N}/perspective-{P}.md to get the list of rule titles (each ### {title} under ## Rules).
Read {WORKSPACE}/problem.md to get dataset sentences and questions.
Step 4c.2: Test rules (one per call)
For each rule title in the perspective:
Step 4c.3: Test sentences (one per call, blind translation)
For each dataset sentence (from the ## Dataset table in problem.md):
For each question in problem.md (from ## Questions):
Step 4c.4: Aggregate and write verification file
Compute:
Note: questions are NOT included in the pass rate denominator (they have no expected answer).
Write {WORKSPACE}/hypotheses/round-{N}/verification-{P}.md with this structure:
# Verification: Perspective {P}
## Summary
- Rules tested: {rules_total}
- Rules passed: {rules_passed}
- Rules failed: {rules_failed}
- Sentences tested: {sentences_total}
- Sentences passed: {sentences_passed}
- Sentences failed: {sentences_failed}
- Pass rate: {pass_rate}%
## Rule Results
### {Rule title}
**Status:** {PASS|FAIL|NEEDS_UPDATE}
**Notes:** {reasoning from verifier}
(repeat for each rule)
## Sentence Results
| # | {Foreign} | Expected {Target} | Generated {Target} | Status | Notes |
|---|-----------|-------------------|---------------------|--------|-------|
(one row per dataset sentence)
## Question Coverage
| # | Direction | Translation | Notes |
|---|-----------|-------------|-------|
(one row per question -- for logging, not pass rate)
If the verification file could not be written (e.g., all verifier calls failed): print "Verification of perspective {P} failed -- continuing" and append the error to {WORKSPACE}/errors.md
For each perspective that has a verification file:
## Summary section of {WORKSPACE}/hypotheses/round-{N}/verification-{P}.mdPass rate: {N}% valuePrint: "Round {N} results: {name1} {rate1}%, {name2} {rate2}%, {name3} {rate3}%"
If no perspectives produced valid verification results, print an error and abort.
Print: "Synthesizing best rules from all perspectives..."
Use the synthesizer agent:
{WORKSPACE}/hypotheses/round-{N}/perspective-*.md{WORKSPACE}/hypotheses/round-{N}/verification-*.md{WORKSPACE}/problem.md{WORKSPACE}/solution.md{WORKSPACE}/solution.mdAfter the synthesizer completes:
{WORKSPACE}/solution.md exists{WORKSPACE}/solution.mdPrint: "Checking convergence..."
This is the multi-call verification orchestration for the merged solution. The /solve skill itself orchestrates individual verifier calls and aggregates results.
Step 4f.1: Extract rules and sentences from solution and problem
Read {WORKSPACE}/solution.md to get the list of rule titles (each ### {title} under ## Rules).
Read {WORKSPACE}/problem.md to get dataset sentences and questions.
Step 4f.2: Test rules (one per call)
For each rule title in the solution:
Step 4f.3: Test sentences (one per call, blind translation)
For each dataset sentence (from the ## Dataset table in problem.md):
For each question in problem.md (from ## Questions):
Step 4f.4: Aggregate and write verification file
Compute:
Note: questions are NOT included in the pass rate denominator (they have no expected answer).
Write {WORKSPACE}/verification.md with this structure:
# Final Verification
## Summary
- Rules tested: {rules_total}
- Rules passed: {rules_passed}
- Rules failed: {rules_failed}
- Sentences tested: {sentences_total}
- Sentences passed: {sentences_passed}
- Sentences failed: {sentences_failed}
- Pass rate: {pass_rate}%
## Rule Results
### {Rule title}
**Status:** {PASS|FAIL|NEEDS_UPDATE}
**Notes:** {reasoning from verifier}
(repeat for each rule)
## Sentence Results
| # | {Foreign} | Expected {Target} | Generated {Target} | Status | Notes |
|---|-----------|-------------------|---------------------|--------|-------|
(one row per dataset sentence)
## Question Coverage
| # | Direction | Translation | Notes |
|---|-----------|-------------|-------|
(one row per question -- for logging, not pass rate)
After writing verification.md, read the ## Summary section and check the pass rate:
If pass rate is 100% (all rules pass, all sentences pass):
"Converged! All rules pass verification."If not converged and round < 3:
"Round {N} pass rate: {rate}%. Starting round {N+1}..."If not converged and round = 3:
"Maximum rounds reached. Using best result (pass rate: {rate}%)."Read {WORKSPACE}/verification.md (produced by Step 4f).
Extract the pass rate from the ## Summary section.
If pass rate is 100%:
"Step 4f already converged at 100%. Skipping to answer step."{WORKSPACE}/solution.mdOtherwise:
"Starting verify-improve loop (iteration 0 pass rate: {rate}%)..."{WORKSPACE}/solution.md{WORKSPACE}/verification.mdFor iteration I (1 to 4):
Print: "Iteration {I}: Improving rules..."
Use the improver agent:
After the improver completes:
{WORKSPACE}/improved-{I}.md exists using test -f"Improvement failed at iteration {I}. Using last known good solution." and append to {WORKSPACE}/errors.md, then break out of the loopSet CURRENT_SOLUTION to {WORKSPACE}/improved-{I}.md
Print: "Iteration {I}: Verifying rules..."
This is the multi-call verification orchestration. The /solve skill itself orchestrates individual verifier calls and aggregates results.
Step 5c.1: Extract rules and sentences from current solution and problem
Read {CURRENT_SOLUTION} to get the list of rule titles (each ### {title} under ## Rules).
Read {WORKSPACE}/problem.md to get dataset sentences and questions.
Step 5c.2: Test rules (one per call)
For each rule title in the solution:
Step 5c.3: Test sentences (one per call, blind translation)
For each dataset sentence (from the ## Dataset table in problem.md):
For each question in problem.md (from ## Questions):
Step 5c.4: Aggregate and write verification file
Compute:
Note: questions are NOT included in the pass rate denominator (they have no expected answer).
Write {WORKSPACE}/verification-{I}.md with this structure:
# Verification: Iteration {I}
## Summary
- Rules tested: {rules_total}
- Rules passed: {rules_passed}
- Rules failed: {rules_failed}
- Sentences tested: {sentences_total}
- Sentences passed: {sentences_passed}
- Sentences failed: {sentences_failed}
- Pass rate: {pass_rate}%
## Rule Results
### {Rule title}
**Status:** {PASS|FAIL|NEEDS_UPDATE}
**Notes:** {reasoning from verifier}
(repeat for each rule)
## Sentence Results
| # | {Foreign} | Expected {Target} | Generated {Target} | Status | Notes |
|---|-----------|-------------------|---------------------|--------|-------|
(one row per dataset sentence)
## Question Coverage
| # | Direction | Translation | Notes |
|---|-----------|-------------|-------|
(one row per question -- for logging, not pass rate)
Set CURRENT_VERIFICATION to {WORKSPACE}/verification-{I}.md
Print: "Iteration {I}: {pass_rate}% ({rules_passed}/{rules_total} rules, {sentences_passed}/{sentences_total} sentences)"
If pass_rate is 100%:
"Converged at iteration {I}! All rules and sentences pass."If I = 4 (max iterations reached):
"Maximum iterations reached. Final pass rate: {pass_rate}%.""Failing rules: {comma-separated failing rule titles}""Failing sentences: {comma-separated failing sentence numbers}"Otherwise:
Print: "Generating answers from validated rules..."
Use the answerer agent:
After the answerer completes:
{WORKSPACE}/answers.md exists using test -f"Answer generation failed." and append to {WORKSPACE}/errors.mdRead {CURRENT_SOLUTION} to extract the rules (from ## Rules section) and vocabulary (from ## Vocabulary section).
Read {WORKSPACE}/answers.md to extract translated answers (from each ## Q{N} section).
Read {CURRENT_VERIFICATION} to get the overall pass rate (from ## Summary) and per-rule results (from ## Rule Results).
If CURRENT_VERIFICATION is not set (100% convergence at Step 4f with no verify-improve loop), use {WORKSPACE}/verification.md.
Print: ""
Print: "--- Results ---"
Print: ""
Print: "Rules:"
For each rule (### {title} under ## Rules in CURRENT_SOLUTION):
## Rule Results section"{N}. {title} -- {one-line description}"" [FAIL] {reasoning}"Print: ""
Print: "Answers:"
If {WORKSPACE}/answers.md exists (check with test -f):
For each question section (## Q{N} in answers.md):
- Extract the input sentence (from **Input:** line) and translation (from **Translation:** or **Revised translation:** line, preferring revised if present)
- Print: "{Q_ID}: {input} -> {translation}"
If {WORKSPACE}/answers.md does not exist:
Print: "No answers generated -- see errors.md for details."
Print: ""
Extract the pass rate from CURRENT_VERIFICATION's ## Summary section.
Print: "Pass rate: {rate}%"
If {WORKSPACE}/errors.md exists (check with test -f):
Read it and check for errors that affected the outcome -- look for entries where Recovered is "No" or entries that mention fallback/degraded behavior.
If any such errors exist:
Print: ""
Print: "Warnings:"
For each relevant error:
Print: "- {agent}: {message}"
Read {CURRENT_SOLUTION} for the full rules and vocabulary sections.
Read {CURRENT_VERIFICATION} for per-rule verification status and reasoning.
Read {WORKSPACE}/answers.md for translated answers (if it exists).
If {WORKSPACE}/errors.md exists (check with test -f), read it for pipeline notes.
If CURRENT_VERIFICATION is not set (100% convergence at Step 4f with no verify-improve loop), use {WORKSPACE}/verification.md.
Collect verification history:
Read {WORKSPACE}/verification.md and extract the pass rate from ## Summary (this is iteration 0).
For I = 1 to 4:
Check if {WORKSPACE}/verification-{I}.md exists (using test -f via Bash).
If it exists, read it and extract the pass rate from ## Summary.
Write {WORKSPACE}/solution-complete.md using the Write tool with the structure defined in references/workspace-format.md (## solution-complete.md template).
Key formatting rules for the solution file:
> Problem: See problem.md (do not include problem content inline)- Iteration {N}: {rate}% with iteration 0 labeled - Iteration 0 (initial): {rate}%Do NOT include: