Commit Graph

4 Commits

Author SHA1 Message Date
ue-toolchain f2ec704fde feat(gate): P17 keeps the engine tool surface out of skill content
The first-party agent-tool layer is Experimental and its surface moves between
builds. A recipe that names a toolset does not fail loudly on the next build --
the tool is simply absent, the search finds nothing, and "nothing found" reads
as "no problem here". That is the exact confusion this bundle documents, so the
tokens are barred rather than discouraged.

Grounded in measurement against a live editor, not in reading:
- the aggregator plugin lists 21 dependencies; the server reported 53
  registered toolsets from 22 plugins, one dependency contributing none;
- the visible tool count flips between 3 meta-tools and every tool registered
  natively, on one project setting.

- gate.py: ENGINE_TOOL_TOKENS and check_engine_tool_surface, registered in
  CHECKS; rule floor raised to 17.
- test_gate.py: one poison naming a toolset, a meta-tool and a host:port.
- ADR-0004 records the decision, its confirmation criteria and what is
  deliberately deferred.
- README and CONTRIBUTING state the rule where a contributor meets it.

Verified: gate.py 0 violations over 17 rules; test_gate.py 17/17 redden on
their fixtures, baseline clean, surface coverage intact. The token list matches
nothing under skills/ today, checked before the rule landed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 00:00:59 +07:00
ue-toolchain dab3f35079 feat(skills): ship ue-design-skills bundle, licensing and delivery gate
Phase 0 of the handoff plan, as a marketplace rather than a flat skills/
directory. Content moved out of the LyraResearch archive and depersonalised:
addresses stay in the archive, recipes ship.

- plugins/ue-design-skills: 17 skills, 232 failure-mode entries, each with the
  six required fields; catalog.json as the harness-neutral source of truth and
  .claude-plugin/ as one adapter over it.
- _gate: 16 rules, one poisoned fixture per rule, plus surface coverage so a
  declared file cannot silently miss the line rules.
- ADR-0002 (harness-neutral bundle behind a marketplace) and ADR-0003 (split
  licensing: CC BY-ND 4.0 prose, Apache-2.0 code and metadata).
- LICENSE files at both levels, CONTRIBUTING.md, docs/licensing-options.md as
  the material the licence decision grew from.

Verified: gate.py 0 violations; test_gate.py 16/16 rules redden on their
fixtures with a clean baseline and 2 root files reaching the line rules.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-05 23:48:55 +07:00
ue-toolchain ff491e86dd docs(adr-0001): remove premature reference to ADR-0002
Убрана отсылка к 'ADR-0002-candidate' про удалённый транспорт, которая
была вставлена для красоты аргумента, но не подкреплена реальным запросом.
Заменено на честную формулировку: loopback-only — это ограничение
v0.1, удалённый сценарий будет рассмотрен отдельным ADR при появлении
конкретной потребности, а не упреждающе.

Соответствует принципу YAGNI: ADR фиксируют принимаемые решения, а не
гипотетические.
2026-09-01 21:08:38 +07:00
ue-toolchain cec48f686b docs: initial ADR-0001 (discovery over PID file) and project skeleton
Зафиксировано архитектурное решение о замене PID-файла на UDP-broadcast
discovery с graceful degradation: MCP-сервер остаётся полезным без
запущенного редактора (файловые и аналитические инструменты работают),
а редакторные инструменты появляются в tools/list только при живом
соединении.

Это ответ на повседневную боль VibeUE: 60-секундные зависания tools/call
после закрытия редактора, конфликты при двух инстансах, жёсткая связка
с файлом-маркером на диске.
2026-09-01 20:55:15 +07:00