write-tactical-model

Writes per-feature tactical-model.md files capturing aggregates, invariants, domain events, and commands.

Updated Jun 12, 2026
One-click install
npx skills add https://github.com/lucolucus/mismagent --skill write-tactical-model-lucolucus
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: write-tactical-model
Source: https://github.com/lucolucus/mismagent/tree/main/plugins/mismagent/skills/write-tactical-model
Command: npx skills add https://github.com/lucolucus/mismagent --skill write-tactical-model-lucolucus

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Domain-driven design teams lose tactical modeling details between the strategic exploration phase and the build phase, causing aggregates, invariants, and domain events to be reinvented or drift from the canonical language. This Skill persists those decisions in a per-feature tactical-model.md file so downstream manifest generation and verification consume them directly. ## Core Features & Use Cases - Explore-to-model handoff: Persists the "Seeds for the tactical" section that the analyst glimpses during strategic exploration, which the tactical-modeler later absorbs and empties. - Consumer-driven modeling: Records aggregates, invariants (INV-n), domain events, and commands with actors, where every row must name its downstream consumer (manifest block, acceptance criterion, or read-model) or it is not written. - Ubiquitous language enforcement: Requires every term to already exist in the project-level context-map.md, preventing local renaming and language drift. - Use Case: While modeling a maintenance feature, capture the invariant "extraordinary maintenance requires an attachment" as INV-1 so the verifier later demands a test for it on the aggregate block. ## Quick Start Ask the agent to write the tactical model for the current feature, capturing its aggregates, invariants, domain events, and commands into features/<feature>/tactical-model.md.

Frequently Asked Questions about write-tactical-model

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a tactical model for a DDD feature?

Create one tactical-model.md per feature with a section per bounded context the feature touches. List aggregates with guarded entities, invariants with INV-n ids, past-tense domain events, and commands with actors, each row naming its downstream consumer.

What is the difference between a context map and a tactical model?

The context map is project-level and holds bounded contexts plus the ubiquitous language, while the tactical model is per-feature and holds aggregates, invariants, events, and commands. The tactical file lives and is discarded with the feature; the context map persists.

How do domain events map to manifest building blocks?

Domain events seed read-model blocks such as queries and views, and they define side-effects or guards of write operations. Commands with actors seed application-service blocks, which may project into write endpoints with an operationId.

Can I introduce new domain terms in the tactical model file?

No. Every term must already be canonical in the project context-map.md. A concept without a canonical name is a gap for the analyst, who must amend the project map first, preventing ubiquitous language drift.

When should the Seeds for the tactical section be emptied?

The seeds section is written by the analyst during exploration and read by the tactical-modeler during modeling. Once the tactical-modeler absorbs the seeds into the Tactical model section, it empties the seeds section.