Skip to content

fix(algorithms): kind filter + card vs examples/ port fidelity - #810

Open
Birfy wants to merge 2 commits into
mainfrom
fix/384-kind-fidelity-surface
Open

Birfy wants to merge 2 commits into
mainfrom
fix/384-kind-fidelity-surface

Conversation

@Birfy

@Birfy Birfy commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

Completes the Kind filter + fidelity addendum on #384 (does not close the whole issue — MethodPolicy catalog / remaining port migrations stay open).

  • Every registry entry is labeled surface=card in list / show / MCP / plan echo.
  • ACE / GEPA / DGM / SkillOpt / EvoSkill cards carry research_port + fidelity_note so same name ≠ paper port.
  • Host /algorithms slash + SKILL.md filter by artifact kind and state the card≠port rule.
  • Catalog + port-fidelity docs updated; --kind / MCP kind= already refused unsupported cards in plan.

Test plan

  • pytest tests/test_algorithms.py (incl. new fidelity tests)
  • pytest tests/test_slash_command_parity.py
  • CI required checks on the tip

Refs #384

@Birfy

Birfy commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Verdict: PASS
Tip SHA: d58e315
Ran: pytest tests/test_algorithms.py (full file, incl. new fidelity tests) + tests/test_slash_command_parity.py on the tip; risk_gate.py --pr 810 → T3 (paths agentdescent/integrations/SKILL.md, agentdescent/integrations/__init__.py)
Not run: waiting on required CI (build + test 3.9–3.13) at review time

Correctness

  • Algorithm.describe() always sets surface: "card"; ACE/GEPA/DGM/SkillOpt/EvoSkill also get research_port + an honest fidelity_note that names the fidelity class and examples/<name>/. RRSI and other cards without a sibling port correctly omit those keys.
  • CLI list/show, MCP list_algorithms/describe_algorithm, and plan's _algorithm_echo all carry the same surface / port fields so hosts cannot read a mechanism slice as the paper port.
  • Kind filtering is reinforced (host slash + SKILL + MCP tool text + empty-kind note); policy_slot still gets its dedicated note and does not clobber into a false “cards vs ports” story when the list is empty for that kind.
  • New tests lock the contract: test_card_vs_research_port_fidelity_fields, test_cli_show_and_plan_echo_card_surface, test_mcp_list_algorithms_carries_cards_vs_ports_note (incl. kind filter excluding evoskill from kind=text).

Design fit (#384 addendum only)

  • Matches the Kind filter + Card vs port acceptance addendum on plugin: let users select/run algorithms from examples/ via EvolveSpec / CLI / MCP #384 without pretending to close MethodPolicy catalog / remaining port migrations — PR body and changelog say so clearly.
  • Docs (algorithms.md via gen script, port-fidelity.md, algorithm-authoring.md) and host copy (SKILL.md, /algorithms command) stay in sync with the registry frozenset _CARDS_WITH_RESEARCH_PORT.

Nits (non-blocking)

  • _CARDS_WITH_RESEARCH_PORT is a manual frozenset; fine for five names, but a drift test against examples/<name>/ (or against docs/algo-*.md) would catch a future same-name card that forgets the port link.
  • Generated research-port bullets in docs/algorithms.md repeat the full fidelity_note string — readable but a bit long; optional later tighten.

Merge

risk_gate T3 (integrations host surface). Per policy: do not auto-merge; waiting on Danyang's click / 「都合了」 after required CI is green on this tip. AGENT_PAUSE=false.

@Birfy

Birfy commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review (Birfy)

Tip SHA: d58e315
Ran:

@Birfy

Birfy commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review (Birfy)

Tip SHA: cd44b7f
Ran:

  • pytest -q tests/test_integrations.py::test_checked_in_claude_plugin_matches_the_package tests/test_integrations.py::test_checked_in_dsh_plugin_matches_the_package tests/test_slash_command_parity.py tests/test_algorithms.py → pass
    Not run:
  • full suite — CI re-run on this tip
  • Ark real-model run — no model path changed
    Findings:
  • none (prior tip failed only on checked-in plugin SKILL drift)
    Verdict: PASS

@Birfy

Birfy commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Verdict: PASS
Tip SHA: cd44b7f
Ran: pytest tests/test_algorithms.py tests/test_slash_command_parity.py tests/test_integrations.py::test_checked_in_claude_plugin_matches_the_package tests/test_integrations.py::test_checked_in_dsh_plugin_matches_the_package; risk_gate → T3 (integrations/SKILL.md + init.py + host plugin paths)
Not run: full pytest -q (defer to required CI)

Note

Tip advanced from d58e315 → cd44b7f (plugin parity sync); prior PASS was on the old tip so this re-PASS matches current head.

Risk: T3 — waiting for Danyang's merge click after CI green. No --auto.

@github-actions github-actions Bot added the risk:T3 Risk tier T3 (core loop, release, process; needs Danyang's click), set by the controller label Nov 6, 2026
@Birfy

Birfy commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review (Birfy)

Tip SHA: cd44b7f
Ran:

  • pytest -q tests/test_integrations.py::test_checked_in_claude_plugin_matches_the_package tests/test_integrations.py::test_checked_in_dsh_plugin_matches_the_package tests/test_slash_command_parity.py tests/test_algorithms.py → pass
  • python -m tools.gen_algorithms_docs --check → pass
  • python -m tools.changelog_fragments check → pass
  • CI build + test 3.10–3.13 → green (3.9 still finishing)
    Not run:
  • Ark real-model run — no model path changed
    Findings:
  • none
    Verdict: PASS

@Birfy

Birfy commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Verdict: PASS
Tip SHA: b4e0768
Ran: merged origin/main (#814) resolving docs/port-fidelity.md (kept #384 surface note + decision-tree link); pytest tests/test_algorithms.py tests/test_slash_command_parity.py tests/test_changelog_fragments.py; risk_gate → T3
Not run: full pytest -q (CI re-runs 3.9–3.13)

Risk: T3 — waiting for Danyang's merge click after CI green. No --auto.

@Birfy

Birfy commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Conflict after #812 landed on main (e510e07). Tip b4e07684 is now CONFLICTING with agentdescent/integrations/SKILL.md / checked-in plugin assets.

Please rebase onto current main, re-sync generated plugin/SKILL files if needed, and re-post PASS on the new tip. Required CI must be green again before merge (T3; user already clicked 「合」 once this tip is ready).

Birfy added 2 commits November 7, 2026 06:40
Label every registry entry as an Algorithm card (surface=card). For ACE,
GEPA, DGM, SkillOpt and EvoSkill, list/show/MCP/plan also name the sibling
examples/<algo>/ research port with an honest fidelity_note so same name is
never read as same fidelity. Host /algorithms slash and SKILL.md filter by
kind and repeat the card≠port rule.

Completes the Kind filter + fidelity addendum on #384; MethodPolicy catalog
and remaining port migrations stay open.
Regenerate integrations/claude-code and dsh-agentdescent so the marketplace
SKILL.md matches agentdescent/integrations/SKILL.md after the #384 card≠port
wording.
@Birfy
Birfy force-pushed the fix/384-kind-fidelity-surface branch from b4e0768 to 2b8958f Compare November 6, 2026 22:41
@Birfy

Birfy commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Verdict: PASS
Tip SHA: 2b8958f

Rebased onto main fc24d929 (after #812 Path A + #813 factory Policies) with force-with-lease. Dropped the earlier merge commit; history is two commits again.

Conflict resolution:

Ran:

  • pytest -q tests/test_algorithms.py tests/test_slash_command_parity.py tests/test_changelog_fragments.py → pass
  • pytest -q tests/test_integrations.py::test_checked_in_claude_plugin_matches_the_package tests/test_integrations.py::test_checked_in_dsh_plugin_matches_the_package → pass
  • python -m tools.gen_algorithms_docs --check → pass
  • python -m tools.changelog_fragments check → pass
  • risk_gate.py --pr 810 → T3 (integrations/SKILL.md, integrations/init.py, host plugin paths)

Not run: full pytest -q (required CI 3.9–3.13 re-running on this tip)

Risk: T3 — no --auto. Mergeable again; squash-merge only after required CI is green and under Danyang's existing 「合」 for this PR.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:T3 Risk tier T3 (core loop, release, process; needs Danyang's click), set by the controller

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant