Skip to content

feat: Takt extends, Amp skills adapter, and Qwen .qwenignore fix - #1771

Merged
dyoshikawa merged 2 commits into
mainfrom
resolve-scrap-issues-20260608-3
Jun 9, 2026
Merged

feat: Takt extends, Amp skills adapter, and Qwen .qwenignore fix#1771
dyoshikawa merged 2 commits into
mainfrom
resolve-scrap-issues-20260608-3

Conversation

@dyoshikawa

Copy link
Copy Markdown
Owner

Summary

Batch follow-up of three maintainer-scrap upstream issues. Each part is scoped to a clear, high-confidence core; the larger remaining surfaces of #1698 and #1739 are listed as follow-ups below.

#1697 — Takt: facet inheritance (extends) — fully resolved

Takt 0.39.0 added facet inheritance via a standalone inline directive {extends:<parent>} at the start of a facet file. Added a takt.extends frontmatter field that emits this directive for the facets that support it:

  • policies ← rules, instructions ← commands, knowledge ← skills
  • personas ← subagents are excluded (Takt does not allow persona inheritance)

The parent is validated as a bare facet name (no path separators / ..), matching the existing takt.name constraint.

#1698 — Qwen Code: .qwenignore filename fix — headline bug fixed

QwencodeIgnore emitted .geminiignore, but Qwen Code reads .qwenignore (docs), so the generated file was inert. Switched the emitted/imported filename to .qwenignore and added the matching gitignore entry.

Remaining #1698 follow-ups (larger, separate adapters): MCP (.qwen/settings.json), subagents (.qwen/agents/), commands (.qwen/commands/), skills (.qwen/skills/), hooks, global memory (~/.qwen/QWEN.md), and the local context file (.qwen/QWEN.local.md). This PR therefore does not close #1698.

#1739 — Amp: native Agent Skills adapter — core gap implemented

Amp natively reads Agent Skills in the standard SKILL.md layout. Added AmpSkill, emitting .agents/skills/<name>/SKILL.md (project) and ~/.config/agents/skills/ (global), registered in skills-processor (Amp manual).

Remaining #1739 follow-ups: skill-bundled MCP mcp.json, amp.mcpPermissions, the AGENTS.md rules surface, and code-review .agents/checks/. This PR therefore does not close #1739.

Validation evidence (primary sources)

Test plan

  • pnpm cicheck — green (fmt, oxlint, typecheck, 6006 unit tests, sync-skill-docs, cspell, secretlint).
  • New unit tests: prependTaktExtends + Takt rule extends round-trip; AmpSkill generate/import + project/global paths; Qwen .qwenignore filename across QwencodeIgnore/IgnoreProcessor.
  • E2E happy-path (Tool × Feature matrix preserved): added amp to e2e-skills and updated qwencode to .qwenignore in e2e-ignore — both specs pass in full.

Linked issues

🤖 Generated with Claude Code

Batch follow-up of three maintainer-scrap upstream issues:

#1697 (Takt): add facet inheritance. A new takt.extends frontmatter field emits a leading {extends:<parent>} directive for the instructions (commands), policies (rules), and knowledge (skills) facets; personas (subagents) are excluded per the Takt spec. The parent is validated as a bare facet name.

#1698 (Qwen Code): fix the inert ignore file. QwencodeIgnore emitted .geminiignore, but Qwen Code reads .qwenignore, so the generated file was ignored at runtime. Switch the filename and add the matching gitignore entry. (Other Qwen surfaces — mcp/subagents/commands/skills/hooks/global+local memory — remain follow-ups.)

#1739 (Amp): add a native Agent Skills adapter. AmpSkill emits .agents/skills/<name>/SKILL.md (project) and ~/.config/agents/skills/ (global), registered in skills-processor. (Skill-bundled mcp.json, amp.mcpPermissions, AGENTS.md rules, and code-review checks remain follow-ups.)

Closes #1697

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…view findings

Resolve conflicts from upstream Agent Skills (#1775):
- src/features/skills/skills-processor.test.ts: keep both new global targets (agentsskills + amp), ordered to match skillsProcessorToolTargetsGlobal
- docs/reference/supported-tools.md: re-apply #1771's Amp Skills (✅ 🌏) cell onto the upstream matrix; regenerate skills/rulesync/supported-tools.md

Address PR #1771 review findings (mid severity):
- src/features/takt-shared.ts: extract the shared unsafe-name predicate into isUnsafeTaktName(), removing the duplication between assertSafeTaktName() and prependTaktExtends() (behavior-preserving)
- src/e2e/e2e-skills.spec.ts: add amp to the global-mode skills E2E matrix (~/.config/agents/skills/), restoring Tool x Feature happy-path coverage for the newly global-capable target

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dyoshikawa
dyoshikawa merged commit ebbee7e into main Jun 9, 2026
9 checks passed
@dyoshikawa
dyoshikawa deleted the resolve-scrap-issues-20260608-3 branch June 9, 2026 03:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants