From cogitation
Explores requirements, searches past decisions, creates design documents, and sets up feature branches. Use before any feature work or when starting a new feature.
npx claudepluginhub merewhiplash/engram-cogitator --plugin cogitationThis skill uses the workspace's default tool permissions.
Turn ideas into designs through collaborative dialogue.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Turn ideas into designs through collaborative dialogue.
Announce: "I'm using the brainstorming skill to explore this feature."
EC Search → Branch Setup → Q&A → Approaches → Design → Save
Before designing, check what we've done before:
ec_search:
query: [feature area]
type: decision
ec_search:
query: [related patterns]
type: pattern
ec_search:
query: [similar features]
Note relevant past decisions that might inform or constrain the design.
Check current state:
git branch --show-current
git status
Load branch convention from config:
ec_search:
query: project config
type: config
REQUIRED: Use the AskUserQuestion tool to determine branching:
If on main:
{
"questions": [{
"question": "Create a feature branch for this work?",
"header": "Branch",
"options": [
{ "label": "Yes", "description": "Create {convention}/<name> branch" },
{ "label": "No", "description": "Stay on main" }
],
"multiSelect": false
}]
}
If on feature branch:
{
"questions": [{
"question": "Where should this new work branch from?",
"header": "Branch",
"options": [
{ "label": "Current branch", "description": "Nested feature off current work" },
{ "label": "Main", "description": "Fresh start from main" }
],
"multiSelect": false
}]
}
This enables branching cycles - features can spawn sub-features.
REQUIRED: Use the AskUserQuestion tool for all clarifying questions.
multiSelect: true when multiple options can applyFocus on:
Example:
{
"questions": [{
"question": "Who should have access to this feature?",
"header": "Access",
"options": [
{ "label": "All users", "description": "Any authenticated user" },
{ "label": "Admins only", "description": "Requires admin role" },
{ "label": "Role-based", "description": "Configurable per role" }
],
"multiSelect": false
}]
}
Propose 2-3 approaches with trade-offs. Lead with your recommendation and why.
Search EC for relevant prior decisions:
ec_search:
query: [technology or pattern being considered]
type: decision
Keep it conversational:
"I'd go with Option A because [reason]. Option B would work if [condition]. Option C is overkill unless [edge case]."
Once you understand what we're building, present the design in chunks (200-300 words each). Check after each section if it looks right.
Cover:
Be ready to backtrack if something doesn't fit.
Write to docs/designs/YYYY-MM-DD-<topic>.md
Include:
See: docs/plans/YYYY-MM-DD-<topic>.mdFor each significant architectural decision made:
ec_add:
type: decision
area: [component]
content: [What was decided and why]
rationale: [Trade-offs considered]
After saving:
"Design saved to
docs/designs/YYYY-MM-DD-<topic>.md. Ready to create the implementation plan?"
If yes → Use @writing-plans (all tasks will follow @tdd red-green-refactor)