todo2code

Śledzenie wymagań

Wymaganie Implementacja Test / odbiór
NL → Intent DSL przez LLM z jawnym fallbackiem src/extractors/nl-llm.ts, src/extractors/nl.ts, src/llm/openrouter.ts nl.test.ts: sukces LLM, fallback, require-llm; verify-no-llm-imports.mjs chroni parser deterministyczny
Ostatnie 10 commitów → DSL src/extractors/git.ts, default T2C_GIT_COMMIT_COUNT=10 git.test.ts (dokładnie 10 z repo zawierającego 12 commitów)
Aktualne AST → DSL orkiestrator src/extractors/ast.ts, adaptery src/extractors/ast/{typescript,python,go,java,rust}.ts i helpery językowe ast.test.ts, ast-go.test.ts, ast-languages.test.ts
TODO + CHANGELOG → DSL, struktura + LLM osobne src/extractors/todo.ts, changelog.ts, kompozycja markdown.ts, audyt markdown-llm.ts markdown.test.ts: oba konwertery, sukces LLM, zachowanie pól strukturalnych, fallback i require-llm; live qwen/qwen3.7-plus
Dokumentacja → DSL offline + opcjonalny LLM src/extractors/docs-deterministic.ts, src/extractors/docs-llm.ts, src/llm/openrouter.ts docs.test.ts: baseline; openrouter.test.ts: structured output, target hints, współbieżność, budżet chunków, runtime/config audit
Konfiguracja/infrastruktura → DSL src/extractors/configuration.ts, pipeline oraz CLI/MCP/A2A/SDK configuration.test.ts, mcp.test.ts: JSON, TOML, Dockerfile, workflow CI i ekspozycja publiczna
Obowiązkowa provenance każdego rekordu DSL src/core/record.ts, src/core/schema.ts, schemas/intent-record.schema.json schema-validation.test.ts: generator i wersje dla deterministycznego rekordu, model/provider dla LLM, odrzucenie braków i fałszywych deklaracji LLM
Ludzie/agenci w project/<ticket>/ → DSL i analiza rozbieżności src/extractors/communication.ts, src/communication/analyzer.ts, główny pipeline, CLI/MCP/A2A, historia/UI/watch communication.test.ts, pipeline.test.ts, sdk.test.ts, watch.test.ts: osobne role/uczestnicy, konflikt, praca poza requestem, claim z Git, brak tożsamości, artefakty/filtry/coalescing
Konsolidacja DSL → t2c.conclusion/v1 → NL src/summary/summarizer.ts, t2c summarize --mode deterministic|prefer-llm|require-llm openrouter.test.ts: structured output i ugruntowane cytowania; cli-summary.test.ts: trzy tryby i błędna wartość; pipeline testuje fallback
Strukturalne wnioski t2c.conclusion/v1 typy i stabilne ID w src/core/types.ts, src/core/id.ts; JSON Schema i walidacja w schemas//src/core/schema.ts; orkiestracja w src/synthesis/tasks-llm.ts, kontrakt i materializacja w task-synthesis-{contract,materialize}.ts grounded-contracts.test.ts, task-synthesis.test.ts: kształt, cytowania, fingerprint, ID, metadane i odpowiedź LLM
DSL + diagnostyka → t2c.todo-proposal/v1TODO.patch orkiestracja w src/synthesis/tasks-llm.ts, ograniczony payload w task-synthesis-payload.ts, deduplikacja/kolejność w src/synthesis/validation.ts, renderer/audyt/approval w src/synthesis/todo-patch.ts; CLI/service/MCP/A2A i 5 SDK task-synthesis.test.ts, proposal-validation.test.ts, todo-patch.test.ts, cli-todo.test.ts, pipeline.test.ts: LLM/fallback/timeout, cytowania, duplikaty/cykle, stabilny patch, stale/tampering, jawna zgoda i idempotentne apply
Diagnostyka → t2c.code-change-plan/v1 → acceptance src/synthesis/code-change-plan.ts, typy/walidacja w src/core/{types,schema,id}.ts, schematy JSON, CLI/MCP/A2A i SDK TypeScript code-change-plan.test.ts: deterministyczne plany, provenance, path confinement, tampering oraz acceptance pass/fail po re-diagnose i przez CLI
Graf relacji src/graph/linker.ts graph.test.ts
Diagnostyka rozbieżności src/graph/diagnostics.ts graph.test.ts, pipeline.test.ts
Origin/ref → lokalny workspace src/comparison/workspace.ts, t2c compare-workspace, akcja compare_workspace workspace.test.ts: prawdziwy bare origin, niecommitowany filesystem oraz brak sieciowego summary mimo skonfigurowanego klucza
Audyt runtime/LLM src/llm/audit.ts, src/pipeline/run.ts, t2c.run/v1 testy NL/Markdown/docs: standalone runtime/config; pipeline.test.ts: fingerprint, odpowiedzi i failed-run dla wymaganego LLM oraz nieoczekiwanej awarii
Pełna walidacja DSL w runtime src/core/schema.ts, granice graf/diff/reality/summary oraz kontrakty conclusion/proposal schema-validation.test.ts, grounded-contracts.test.ts: kompletność, enumy, nadmiarowe pola, relacje, statystyki i ugruntowane cytowania
Modularność scripts/verify-module-boundaries.mjs npm run verify:modules: brak cykli i niezależny src/core
Kontrakt środowiska .env.example, src/config/env.ts, Docker/Compose, skrypty live i SDK npm run verify:env: kompletność lokalnego .env, 63 udokumentowane nazwy i brak duplikatów
TypeScript runtime cały katalog src/ npm run build
SDK i przykłady użycia sdk/{typescript,python,go,rust,php} każdy SDK ma convenience NL/docs i propose/render/apply; pięć przykładów testuje offline NL + Markdown, graf/reality/diff i wspólną klasyfikację/fingerprint patcha; opcjonalny workspace
MCP src/interfaces/mcp.ts scripts/mcp-request.sh
A2A src/interfaces/a2a.ts scripts/a2a-request.sh
Konfiguracja .env src/config/env.ts, .env.example doctor
Docker Dockerfile, docker-compose.yml make docker-build
Python tylko gdy przydatny standard-library AST helper ast.test.ts
Makefile Makefile make verify, make demo

Różnica względem materiału wejściowego

Materiał wejściowy koncentruje się również na governance: blokadach agenta, chronionych plikach, statusie DONE i review człowieka. t2c zachowuje epistemikę, diagnostykę i zasadę, że system nie zatwierdza samodzielnie DONE, ale zakres tej paczki skupia się na ekstrakcji, grafie wiedzy, komunikacji i interoperacyjności. Pełne branch protection/work permits pozostają warstwą integracyjną repozytorium/CI.

Granica zdalnych interfejsów

security.test.ts weryfikuje odrzucenie ../, ucieczki przez symlink oraz pomijanie symlinkowanych plików Python przez akcje używane w MCP/A2A.