code-forge Skill
Generiert Implementierungscode aus Design-Blueprints oder verbalen Anforderungen mithilfe eines Inside-Out-Workflows, der auf Architektur und Clean Code fokussiert ist.
- GitHub Stars
- 211
- Dateien
- 1
- Letzter Commit
- 24. Okt. 2026
- Lizenz
- MIT
- Erlaubte Tools
- —
Was macht der code-forge Skill?
code-forge ist ein Agent Skill. Generiert Implementierungscode aus Design-Blueprints oder verbalen Anforderungen mithilfe eines Inside-Out-Workflows, der auf Architektur und Clean Code fokussiert ist.
Zusammenfassung erzeugt aus der SKILL.md des Skills.
Über den code-forge skill
Entwickler, die von Design-Blueprints oder verbalen Anforderungen zu funktionalem Code übergehen, nutzen diesen Skill, um die architektonische Integrität zu wahren. Er folgt einem Inside-Out-Implementierungs-Workflow, der in den innersten Schichten eines Systems beginnt und sich nach außen arbeitet, um sicherzustellen, dass alle Dependencies während des Builds erfüllt sind. Der Prozess stützt sich auf mehrere spezialisierte Frameworks, um hohe Standards in den Bereichen Architektur, Clean Code, Domain-Driven Design und Secure Coding durchzusetzen.
Ein Agent sollte diesen Skill laden, wenn ein User die Anweisung gibt, Code zu implementieren, zu bauen oder zu erstellen. Er erzeugt Implementierungsdateien und die dazugehörigen Tests, wobei sichergestellt wird, dass Tests parallel zur Logik und nicht erst im Nachhinein geschrieben werden. Der Workflow ist hochgradig strukturiert und erfordert einen genehmigten Design-Status sowie spezifische Design-Levels, bevor er fortgesetzt wird. User können das Tempo über verschiedene Review-Modi wie layer-by-layer oder component-by-component steuern, um sicherzustellen, dass der generierte Output ihren Erwartungen und dem etablierten Projektkontext entspricht.
Was ein agent damit machen kann
- 1Implementierung aus Design-BlueprintsGeneriere produktionsreifen Code, indem du einem genehmigten Design-Dokument und seinen spezifischen architektonischen Schichten folgst.
- 2Code aus verbalen Anforderungen bauenErstelle einen strukturierten Implementierungsplan und Code, wenn kein formelles Design-Dokument verfügbar ist.
Geschrieben basierend auf dem SKILL.md des skills. Jeder use case wurde gegen ein zitat daraus geprüft.
So installierst du den code-forge Skill
Jeder Befehl kopiert den Skill-Ordner in das Skills-Verzeichnis des Clients. Starte den Client neu oder beginne eine neue Session, um ihn zu laden.Den code-forge Skill in Plugin installieren
/plugin marketplace add techygarg/lattice /plugin install lattice@lattice
Den code-forge Skill in Claude Code installieren
~/.claude/skills/code-forge/SKILL.md
$ npx degit techygarg/lattice/skills/code-forge ~/.claude/skills/code-forgeDen code-forge Skill in Claude Code (project) installieren
.claude/skills/code-forge/SKILL.md
$ npx degit techygarg/lattice/skills/code-forge .claude/skills/code-forgeDen code-forge Skill in Codex installieren
~/.agents/skills/code-forge/SKILL.md
$ npx degit techygarg/lattice/skills/code-forge ~/.agents/skills/code-forgeDen code-forge Skill in Gemini CLI installieren
~/.gemini/skills/code-forge/SKILL.md
$ npx degit techygarg/lattice/skills/code-forge ~/.gemini/skills/code-forgeDen code-forge Skill in Claude.ai installieren
npx degit techygarg/lattice/skills/code-forge code-forge && zip -r code-forge.zip code-forge # claude.ai → Customize → Skills → + → Create skill → Upload a skill → code-forge.zip
SKILL.md
Auf GitHub ansehenCode Forge
Required Skills
Read and apply:
framework:knowledge-priming-- Load project context (stack, architecture, conventions) so implementation matches the real project. (always)framework:context-anchoring-- Find and load the feature's context anchor doc; enrich it as implementation decisions are made (Create / Load / Enrich behaviors). (always)framework:learning-harvest-- Load prior operational learnings to inform implementation at session start; harvest new ones at session end. (always)framework:collaborative-judgment-- Surface genuine judgment calls as structured options instead of silently assuming. (always)framework:architecture-- Layer placement, dependency direction, structural validation. (always)framework:clean-code-- Craft guardrails: SRP, naming, complexity, error handling. (always)framework:domain-driven-design-- Aggregates, entities, value objects, domain services. (conditional: domain-layer components only)framework:secure-coding-- Trust bounds, injection prevention, secrets handling. (conditional: trust-boundary code only)framework:test-quality-- AAA structure, isolation, assertion quality, naming. (always when writing tests)
Additional Instructions
STOP: Before Step 1, read additional_instructions.code_forge (one line or a list) from .lattice/config.yaml. No file or no key → skip silently.
When lines are found:
- Show them verbatim under "Additional instructions (from config):".
- Highest priority — apply them for the whole session, including on resume. On any conflict with anything else in this skill — steps, gates, STOP rules — or with its Required Skills, standards documents, or operational learnings, the config line wins.
Workflow
Step 1: Establish Implementation Context
- Run
framework:learning-harvestLoad behavior. Focus hint: "implementation session — focus: implementation craft, quality signals, reliability". - Run
framework:context-anchoringDocument Discovery: scan the context base directory (per the atom's Config Resolution) for an existing anchor doc covering this feature's implementation.- Found → Load behavior. Present the structured acknowledgment: feature name, status, decision count, open questions, constraints. STOP: Honor every logged decision and constraint as an active commitment.
- Not found → ask the user: "Is there a design doc or blueprint for this feature, or do we work from what we've discussed?" Accept either answer gracefully:
- Doc provided → load it and follow it.
- Proceed without → all atom rails still apply; there is simply no approved design doc to reference. Work from the verbal requirements in conversation.
Design completeness check — run both gates before Step 2 (no context doc exists → skip both, proceed as "Without approved design"):
Check 1 — status: Read the context doc frontmatter status.
approved→ pass.complete→ this feature was already implemented. If the current request is new scope, recommend/design-blueprintfor a fresh design pass; if the user confirms proceeding on the existing design, continue as "With approved design" (Check 2 still applies).- Anything else (including
draftor a missing field) → STOP: "Context doc not approved (status: [value]). Run/design-blueprintfirst. Proceed anyway?" On confirmation → log it in the Decisions Log and continue as "Without approved design".
Check 2 — levels present: Scan the body for ## Design: Level 3 and ## Design: Level 4.
- Both present → pass.
- Either missing → STOP: "Missing [Level 3 / Level 4 / both]. Proceed anyway?" On confirmation → log the absent levels in the Decisions Log and treat them as gaps to fill during implementation.
Both pass → proceed as "With approved design".
Step 2: Plan Implementation Order
With approved design: extract the component list and layer assignments from the context anchor doc. Use the Level 2 (Components) decisions for layer placement and Level 3 (Interactions) for dependency flow.
Without approved design: classify the required components into architecture layers using the layer definitions from framework:architecture. For each component determine:
- What is its primary responsibility? (business rules, data access, coordination, external I/O)
- Which layer in the loaded architecture doc matches that responsibility?
- What dependency constraints apply to that layer?
If framework:architecture resolved no layer definitions (neither defaults nor a custom doc), surface it: "No architecture rules available. Run /architecture-refiner to define your architecture standards. Proceeding without architecture guidance." Continue with the remaining atom rails.
Present the proposed layer assignments to the user for approval before proceeding.
In both cases, plan an inside-out implementation order following the dependency direction from the loaded architecture doc — start at the innermost layer (no outward dependencies) and work outward, so each layer's dependencies already exist when it is built.
Classify each operation per the flow patterns in the loaded architecture doc (e.g., command vs query flows, or the equivalent distinction in your architecture style).
Present the implementation plan — ordered component list, layer assignments, flow classifications — and confirm with the user before writing code. If the user rejects or corrects the plan, revise and re-present it. STOP: Never start coding on an unagreed plan.
After the plan is approved, ask the user to choose a review mode:
"How should we review the implementation?"
- Layer-by-layer (recommended) — implement each layer fully, pause for review before the next. One review point per layer.
- Full autonomy — implement everything end-to-end, present the complete result. One review point at the end. (If a blueprint exists, still pause on any deviation from the approved design.)
- Component-by-component — pause after each individual component for feedback. Maximum review points.
Default to layer-by-layer if the user expresses no preference.
Step 3: Implement Per Component
For each component in planned order, generate code and tests together — tests are not an afterthought.
Every component:
- Prefer the simpler path first. Before writing custom code: does a stdlib function, platform built-in, or existing dependency already cover this? If yes, use it. Can it be expressed in shorter code? Use that. Write custom code only when the simpler options genuinely fall short.
- Place in the correct architecture layer per
framework:architecture; dependency direction follows the loaded architecture rules. - Apply
framework:clean-codeself-validation during generation. Inline checks: SRP compliance, meaningful naming, low cyclomatic complexity, proper error handling, no magic values, clean function signatures, no dead code, appropriate abstraction level, clear control flow, minimal comments (the code documents itself). - Write tests using
framework:test-qualityself-validation. - Run what you wrote, where the environment allows: execute the component's tests before presenting and include the result in the compliance note. If execution is not available, say so — never imply tests passed when they were only written.
Conditional checks per component:
- Domain layer → apply
framework:domain-driven-designself-validation. - Trust boundary (HTTP handler, external API call, user-input processing, file I/O) → apply
framework:secure-codingself-validation. - Blueprint exists AND Level 4 was confirmed present in Step 1 → verify the component fulfills its L4 (Contracts) specification; flag any deviation from the agreed contract. If the user proceeded without L4 (Check 2 failed), skip this check — there are no contracts to verify against.
Post-generation verification (every component, all review modes):
After generating each component, before presenting it to the user:
- Run the Self-Validation Checklist from each applicable atom against every function/class in the component. Atoms use imperative STOP-verify language — follow it literally.
- Run the Active Anti-Pattern Scan from each applicable atom; check every box on the scan list.
- Violations found → fix before presenting.
- Judgment calls flagged (see each atom's Ambiguity Signals) → collect them and present via the
framework:collaborative-judgmentprotocol before showing code. Never silently resolve. - All checks pass with no flagged judgment calls → present with a brief compliance note ("All clean-code, DDD checks pass") — one line when clean; verbose only when reporting violations and fixes.
Pacing — follow the user's chosen review mode:
- Layer-by-layer: implement all components within a layer, present the full layer (code + tests) for review before starting the next layer.
- Full autonomy: implement all layers continuously; present the complete implementation (all code + tests) at the end, then skip to Step 4.
- Component-by-component: present each component with its tests individually; wait for approval before the next.
- Exception (all modes): a component needs a significant deviation from the plan (new dependency, changed contract, unexpected complexity) → STOP: pause immediately and discuss before continuing, regardless of the chosen review mode.
Step 4: Cross-Component Verification
These checks verify architecture coherence, not code quality (already verified per-component in Step 3). After all components are implemented:
- With blueprint: verify interaction flows match the L3 (Interactions) design — every designed interaction is traceable in the code.
- Dependency direction: apply
framework:architectureverification across all components — inter-component dependency direction follows the loaded architecture rules; no layer imports from a layer it is not permitted to depend on. - Zero Implementation Rule: check that no new components, interactions, or contracts were introduced beyond the Step 2 plan. Something added → flag it — it may be necessary, but it must be a conscious decision, not scope creep.
- Final security scan: apply
framework:secure-codingacross component boundaries — data flowing between components crosses trust bounds safely. - Learnings check: if operational learnings were loaded in Step 1, verify that previously-flagged patterns did not recur in this implementation.
Step 5: Enrich Context
Throughout Steps 3-4, use framework:context-anchoring Enrich behavior to keep the living doc current:
- Add key files as created — path + role in the doc's Key Files table (skip a path already listed).
- Capture implementation decisions — library choices, pattern selections, deviations from the blueprint, tradeoffs made, as Decisions Log entries (decision, reasoning, alternatives considered).
- Resolve open questions — when a design-phase question gets answered during implementation, log the answer as a decision entry AND remove the question from the Open Questions list.
- No context doc exists and significant implementation decisions were made → suggest creating one.
Harvest learnings: run framework:learning-harvest Harvest behavior. Session context: "implementation session — code generation from design contracts". Synthesize and propose cross-cutting patterns from this session — implementation gotchas, design-to-reality gaps, library/framework lessons. The user confirms what enters the document. STOP: run this before closing the feature lifecycle below.
Close the feature lifecycle: write status: complete into the context doc frontmatter. STOP: required discrete file edit.
STOP: do not write status to requirement_doc. The requirement's status belongs to whoever manages it — a human, or an external system it may live in. This molecule manages only its own context doc.
After enriching the context doc, recommend review:
"Implementation complete. Recommend running
/reviewon the generated code before considering the feature done — it provides an independent quality assessment against the same atom standards, catches issues the generator may be blind to, and captures learnings for future sessions."
Dateien in diesem Skill
1code-forge Skill-Fragen
Wie installiere ich den code-forge Skill in Claude Code?
Führe npx degit techygarg/lattice/skills/code-forge ~/.claude/skills/code-forge aus. Claude Code lädt Skills aus ~/.claude/skills (alle Projekte) oder .claude/skills (ein Projekt) und nutzt einen Skill, wenn seine Beschreibung zur Aufgabe passt.
Welche Clients können den code-forge Skill nutzen?
Jeder Client, der das Agent Skills-Format liest: Claude Code, Codex, Gemini CLI und claude.ai (als ZIP hochladen). Skripte im Skill laufen nur dort, wo der Client Codeausführung erlaubt.
Was soll ich tun, wenn mein Design-Dokument nicht genehmigt wurde?
Wenn der Status des Kontext-Dokuments nicht 'approved' ist, solltest du zuerst /design-blueprint ausführen, obwohl du fortfahren kannst, wenn du die Entscheidung bestätigst.
Wie entscheidet das Tool über die Reihenfolge der Implementierung?
Es nutzt eine Inside-Out-Implementierungsreihenfolge, die der Dependency-Richtung des geladenen Architektur-Dokuments folgt, beginnend bei der innersten Schicht.
Welche Review-Modi sind während der Implementierung verfügbar?
Du kannst zwischen den Modi layer-by-layer, full autonomy oder component-by-component wählen.