fix(junie): stop $ARGUMENTS/$speckit-... becoming required Junie arguments - #4796
chelsealong wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Existing or incidental allowPromptArgument: text can prevent the required frontmatter setting from being enabled.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Adapts generated Junie commands to accept free-text arguments correctly.
Changes:
- Rewrites
$ARGUMENTSto$promptand removes misleading$speckit-...prose. - Adds regression and generated-command coverage.
| File | Description |
|---|---|
src/specify_cli/integrations/junie/__init__.py |
Adds Junie-specific argument adaptation. |
tests/integrations/test_integration_junie.py |
Tests placeholder rewriting and generated commands. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…pt is used AI-assisted (Claude Code).
|
Fixed in the latest commit (AI-assisted, Claude Code): |
|
Please fix test & lint errors |
|
AI-assisted (Claude Code): I couldn't reproduce a test or lint failure on the current head. |
|
AI-assisted (Claude Code): the macOS log is readable now. The single failure is |
Pin the workflow ZIP member timestamp so independently generated catalog and download fixtures remain byte-identical across DOS timestamp boundaries. Add a regression using controlled wall-clock values two seconds apart; it fails with the original helper and passes with the fixed timestamp. Production integrity checks and existing negative tests are unchanged. Validation: targeted workflow catalog and Junie tests: 78 passed; Ruff: passed. Full pytest collection: 9014 before, 9015 after. Assisted-by: GitHub Copilot (model: GPT-6.1 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
| archive.writestr( | ||
| zipfile.ZipInfo("workflow.yml", date_time=(2020, 1, 1, 0, 0, 0)), | ||
| yaml.safe_dump(document), | ||
| ) |


Fixes #4794
Junie treats every
$identifierin a command body as a required named argument. The installed commands contained$ARGUMENTSand the prose$speckit-..., so Junie silently refused to run them.Junie's
post_process_command_contentnow:$ARGUMENTSto Junie's free-text$prompt, and addsallowPromptArgument: trueto the frontmatter (per the Junie custom-slash-commands docs);or \$speckit-...`` aside.Tests:
test_junie_argument_placeholders_adaptedandtest_junie_setup_leaves_no_stray_dollar_arguments. They fail without the fix (2 failed, 32 passed on the junie test file with the source reverted). With the fix,pytest tests/integrationsgives 2677 passed, 5 skipped.AI disclosure: this change was written with Claude Code (AI-assisted).