Sprint 272: fitness-routed polyglot test projects — Phase 2 (steps 1888-1892)
Added PolyglotProjectSpec data model and three concrete 2-language test project fixtures, all routing correctly via LanguageFitnessScorer. New headers: - PolyglotProjectSpec.h: PolyglotInterface, PolyglotSection, PolyglotProjectSpec, PolyglotFitnessRouter (explicit override + auto-routing via scorer) - PolySortProject.h: sort-core → Rust, data-gen → Python - PolyApiProject.h: http-server → Go, api-client → TypeScript - PolyParseProject.h: lexer → C++, ast-transform → Haskell - Sprint272IntegrationSummary.h 25/25 tests passing (steps 1888-1892). All new headers ≤ 600 lines. tools/claude/tools.json: added whetstone_score_language_fitness (tool 91). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
},
|
||||
{
|
||||
"name": "whetstone_architect_intake",
|
||||
"description": "See Whetstone MCP docs.",
|
||||
"description": "Parses markdown goals/constraints and extracts functional requirement bullets (including field lists) into normalized requirements.",
|
||||
"input_schema": {
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
@@ -1195,6 +1195,50 @@
|
||||
"examples": [
|
||||
{}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "whetstone_score_language_fitness",
|
||||
"description": "Analyze an AST subtree or spec text and return a ranked list of languages best suited to implement it, with per-language score (0-100) and rationale. Scores against 8 language profiles: Python, Rust, Go, Haskell, C++, TypeScript, Elixir, Lisp.",
|
||||
"input_schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"ast": {
|
||||
"type": "object",
|
||||
"description": "JSON AST subtree to score. Features are extracted automatically."
|
||||
},
|
||||
"spec_text": {
|
||||
"type": "string",
|
||||
"description": "Spec text section to extract features from (used when ast absent)."
|
||||
},
|
||||
"mutation_ratio": {
|
||||
"type": "number",
|
||||
"description": "Override mutation ratio [0,1]. Fraction of AST nodes that are assignments/mutations."
|
||||
},
|
||||
"recursion_hint": {
|
||||
"type": "string",
|
||||
"description": "Override recursion shape: none | tail | tree | loop"
|
||||
},
|
||||
"concurrency_hint": {
|
||||
"type": "string",
|
||||
"description": "Override concurrency primitive: none | channels | shared | actors"
|
||||
},
|
||||
"io_hint": {
|
||||
"type": "string",
|
||||
"description": "Override I/O pattern: none | blocking | async | event"
|
||||
},
|
||||
"type_hint": {
|
||||
"type": "string",
|
||||
"description": "Override type complexity: none | generics | dependent"
|
||||
}
|
||||
},
|
||||
"required": []
|
||||
},
|
||||
"examples": [
|
||||
{
|
||||
"description": "Score with manual hints (actor concurrency + event I/O → Elixir)",
|
||||
"input": { "concurrency_hint": "actors", "io_hint": "event", "recursion_hint": "tail" }
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user