todo2code

Ticket 076: Add standalone code2dsl docs2dsl and config2dsl APIs

Goal and scope

Expose three small, independently callable source-to-DSL APIs over the existing extractors:

Every API accepts a repository root plus an explicit T2CConfig, can be called without constructing the full pipeline, and returns the existing ExtractionResult contract. Requiring explicit configuration preserves the deterministic no-LLM/no-secret-environment import boundary; a standalone converter must not silently read ambient provider configuration. Before the result crosses the new API boundary, all emitted records are validated as t2c.intent/v1. The result is intentionally partial: it contains only evidence owned by that input channel and makes no repository-completeness claim.

ExtractionResult remains an adapter envelope; each item in records is the canonical DSL document. The ticket does not invent a second collection schema or mislabel warnings/cache metadata as semantic DSL content.

The existing extractAstIntent, extractDocumentationBaseline and extractConfigurationIntent functions remain compatible. Because their modules are already re-exported by src/index.ts, the additive APIs require no package-manifest, root-export or pipeline change.

The inspected Wellmanifest standards and their exact applicability are recorded in STANDARDS.md. They require facade parity with the existing SSOT, one-way module dependencies, strict canonical-record validation and a descriptive/no-authority boundary. Experimental or uncommitted standards remain design inputs only; this ticket does not fabricate a standards lock or claim formal conformance.

Acceptance criteria

Participants

Approval gate

The human owner explicitly approved ticket-076 and requested implementation on 2026-08-14. The ticket is now IN_PROGRESS / PUBLICATION. Conversation approval is an audit note, not trusted merge authorization.

Verification evidence

Non-goals