Steps 309-319: Sprint 11 Phases 11d-e — Kotlin/C# languages + workflow annotation foundation

Phase 11d (Steps 309-313): Kotlin + C# parsers and generators
- KotlinParser (regex-based): fun, suspend fun, class, data class, val/var
- KotlinGenerator: idiomatic Kotlin output with type mappings
- CSharpParser (regex-based): methods, async, class, interface
- CSharpGenerator: Allman braces, foreach, Task async, LINQ types
- Pipeline integration for both languages, 10 parsers + 10 generators

Phase 11e (Steps 314-319): Workflow annotation foundation
- AnnotationInference: generalized multi-subject inference engine
- Subject 9 routing annotations: ContextWidth, Review, Ambiguity,
  Automatability, Priority, ImplementationStatus
- SkeletonAST: project specification before code exists
- Architect tooling: createSkeleton, addSkeletonNode, getProjectModel,
  inferAnnotations RPCs + 4 MCP tools (42+ total)
- Inference-to-routing bridge: complexity→ambiguity, getter→deterministic
- TrainingDataExporter + TrainingDataGenerator scaffolding

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Bill
2026-02-15 15:50:06 -07:00
parent a2a9fe6f97
commit 0d51a6fe4c
34 changed files with 5801 additions and 4 deletions

View File

@@ -401,6 +401,8 @@ public:
auto* a = static_cast<const AmbiguityAnnotation*>(anno);
appendProp(props, "intent", a->intent, first);
appendVec(props, "options", a->options, first);
appendProp(props, "level", a->level, first);
appendProp(props, "description", a->description, first);
} else if (ct == "CandidateAnnotation") {
tag = "candidate";
auto* a = static_cast<const CandidateAnnotation*>(anno);
@@ -424,6 +426,37 @@ public:
appendProp(props, "author", a->author, first);
appendProp(props, "reason", a->reason, first);
// --- Subject 9: Workflow Routing ---
} else if (ct == "ContextWidthAnnotation") {
tag = "contextwidth";
auto* a = static_cast<const ContextWidthAnnotation*>(anno);
appendProp(props, "width", a->width, first);
} else if (ct == "ReviewAnnotation") {
tag = "review";
auto* a = static_cast<const ReviewAnnotation*>(anno);
appendBool(props, "required", a->required, first);
appendProp(props, "reviewer", a->reviewer, first);
appendProp(props, "reason", a->reason, first);
} else if (ct == "AutomatabilityAnnotation") {
tag = "automatability";
auto* a = static_cast<const AutomatabilityAnnotation*>(anno);
appendProp(props, "strategy", a->strategy, first);
if (a->confidence > 0.0) {
if (!first) props += ",";
props += "confidence=" + std::to_string(a->confidence);
first = false;
}
} else if (ct == "PriorityAnnotation") {
tag = "priority";
auto* a = static_cast<const PriorityAnnotation*>(anno);
appendProp(props, "level", a->level, first);
appendVec(props, "blockedBy", a->blockedBy, first);
} else if (ct == "ImplementationStatusAnnotation") {
tag = "implstatus";
auto* a = static_cast<const ImplementationStatusAnnotation*>(anno);
appendProp(props, "status", a->status, first);
appendProp(props, "assignee", a->assignee, first);
// --- Semantic Core ---
} else if (ct == "IntentAnnotation") {
tag = "intent";