feat(extensions): add assess idea assessment pipeline extension

Add a role-neutral, opt-in "Idea Assessment Pipeline" extension (id:
assess) covering the discovery work that happens BEFORE spec-driven
development. It provides a five-stage funnel: intake, research, define,
shape, decide, each writing one artifact under
.specify/assessments/<slug>/. A go verdict hands off to
/speckit.specify; killing an idea is a first-class success outcome.

Registration:
- extensions/catalog.json: bundled core opt-in entry (before bug)
- pyproject.toml: force-include maps into core_pack so it ships in the
  installed wheel (verified via wheel build)

Also normalizes a Rich-wrapped substring assertion in test_workflows.py
so the suite passes at CI's 80-column non-TTY width.

Assisted-by: GitHub Copilot (model: Claude Opus 4.8, supervised)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1f25cf9d-b7eb-4b2b-b811-3e91d8db8f6a
This commit is contained in:
Manfred Riem
2026-07-16 13:33:26 -05:00
co-authored by Copilot App
parent aaf6bc22e3
commit 1675608160
12 changed files with 763 additions and 3 deletions
+5 -3
View File
@@ -9027,10 +9027,12 @@ steps:
assert result.exit_code != 0
assert result.exception is None or isinstance(result.exception, SystemExit)
# Original download error remains present.
assert "exceedsthe100-byteworkflowsizelimit" in "".join(result.output.split())
# Original download error remains present. Normalize whitespace so the
# assertion is robust to Rich line-wrapping at narrow terminal widths.
normalized_output = "".join(result.output.split())
assert "exceedsthe100-byteworkflowsizelimit" in normalized_output
# Cleanup failure is reported too, not silently swallowed / crashing.
assert "cleanup denied" in result.output
assert "cleanupdenied" in normalized_output
assert "Warning" in result.output
assert not WorkflowRegistry(project_dir).is_installed("align-wf")