Install
$ agentstack add skill-mattjaikaran-meridian-discuss ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ● Filesystem access Used
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
/meridian:discuss — Phase Discussion
Structured context gathering and decision-making before planning. Identifies gray areas in phase scope and presents focused questions to capture implementation decisions.
Arguments
- `` — (optional) Phase ID to discuss. Defaults to current active phase.
--auto— Skip interactive questions, apply recommended defaults.--chain— Run discuss then automatically advance to plan.--batch— Dump all questions to output for offline answering.--persona— Frame context-gathering through a role lens (pm, architect, ux, qa, security)
Keywords
discuss, context, gray areas, questions, decisions, scope, approach, before planning
Persona Support
If --persona is passed, load the persona and use it to frame the context-gathering questions. The persona shapes which gray areas are surfaced and how questions are phrased.
PYTHONPATH=$MERIDIAN_HOME uv run --project $MERIDIAN_HOME -- python -c "
import json
from scripts.personas import load_persona
persona = load_persona('')
print(json.dumps({'label': persona['label'], 'content': persona['content']}, indent=2))
"
Inject the persona content into the context-gatherer prompt before calling run_discuss. Show the active persona in the discuss banner:
## Discuss —
Persona:
Gray areas will be framed from the perspective.
Available personas: pm, architect, ux, qa, security
Procedure
- Load phase — Read phase from DB, parse acceptance criteria.
PYTHONPATH=$MERIDIAN_HOME uv run --project $MERIDIAN_HOME -- python -c "
import json, sys
from scripts.db import open_project
from scripts.state import get_status
with open_project('.') as conn:
status = get_status(conn)
print(json.dumps(status, default=str))
"
- Run discuss — Identify gray areas, generate questions, optionally auto-apply.
PYTHONPATH=$MERIDIAN_HOME uv run --project $MERIDIAN_HOME -- python -c "
import json, sys
from pathlib import Path
from scripts.db import open_project
from scripts.discuss_phase import run_discuss
mode = sys.argv[1] if len(sys.argv) > 1 else 'interactive'
phase_id = int(sys.argv[2]) if len(sys.argv) > 2 else None
chain = '--chain' in sys.argv
with open_project('.') as conn:
if not phase_id:
from scripts.state import get_status
status = get_status(conn)
active = status.get('active_phase')
phase_id = active['id'] if active else None
if not phase_id:
print('ERROR: No active phase found. Specify phase_id.')
sys.exit(1)
result = run_discuss(conn, phase_id, 'default', Path('.'), mode=mode, chain=chain)
print(json.dumps(result, default=str, indent=2))
" -- "$MODE" "$PHASE_ID"
- Interactive flow — If mode is interactive:
- Present each gray area with options
- Ask the user to choose (or accept defaults)
- After all questions answered, call
apply_answers()to persist - Write CONTEXT.md to
.meridian/phases/
- Apply answers — Persist decisions and generate context doc.
PYTHONPATH=$MERIDIAN_HOME uv run --project $MERIDIAN_HOME -- python -c "
import json, sys
from pathlib import Path
from scripts.db import open_project
from scripts.discuss_phase import apply_answers
phase_id = int(sys.argv[1])
answers_json = sys.argv[2]
gray_areas_json = sys.argv[3]
answers = json.loads(answers_json)
gray_areas = json.loads(gray_areas_json)
with open_project('.') as conn:
result = apply_answers(conn, phase_id, 'default', gray_areas, answers, Path('.'))
print(result['context_doc'])
"
- Transition phase — Move phase to
context_gatheredstate.
PYTHONPATH=$MERIDIAN_HOME uv run --project $MERIDIAN_HOME -- python -c "
from scripts.db import open_project
from scripts.state import transition_phase
phase_id = int('$PHASE_ID')
with open_project('.') as conn:
transition_phase(conn, phase_id, 'context_gathered')
print(f'Phase {phase_id} transitioned to context_gathered')
"
- Chain advance — If
--chainwas passed, automatically invoke/meridian:planfor this phase.
Output
Display gray areas as numbered list with options. After decisions are made, show the generated CONTEXT.md summary. If --auto, show applied defaults.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: mattjaikaran
- Source: mattjaikaran/meridian
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.