feat: Takt extends, Amp skills adapter, and Qwen .qwenignore fix - #1771
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Batch follow-up of three
maintainer-scrapupstream 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 resolvedTakt 0.39.0 added facet inheritance via a standalone inline directive
{extends:<parent>}at the start of a facet file. Added atakt.extendsfrontmatter field that emits this directive for the facets that support it:The parent is validated as a bare facet name (no path separators /
..), matching the existingtakt.nameconstraint.#1698 — Qwen Code:
.qwenignorefilename fix — headline bug fixedQwencodeIgnoreemitted.geminiignore, but Qwen Code reads.qwenignore(docs), so the generated file was inert. Switched the emitted/imported filename to.qwenignoreand added the matchinggitignoreentry.#1739 — Amp: native Agent Skills adapter — core gap implemented
Amp natively reads Agent Skills in the standard
SKILL.mdlayout. AddedAmpSkill, emitting.agents/skills/<name>/SKILL.md(project) and~/.config/agents/skills/(global), registered inskills-processor(Amp manual).Validation evidence (primary sources)
.qwenignore, project root).extends: https://github.com/nrslib/takt/blob/main/docs/faceted-prompting.md (inline{extends:fix}directive; instructions/policies/knowledge/output-contracts only, personas excluded)..agents/skills/project,~/.config/agents/skills/global,name/description).Test plan
pnpm cicheck— green (fmt, oxlint, typecheck, 6006 unit tests, sync-skill-docs, cspell, secretlint).prependTaktExtends+ Takt ruleextendsround-trip;AmpSkillgenerate/import + project/global paths; Qwen.qwenignorefilename acrossQwencodeIgnore/IgnoreProcessor.amptoe2e-skillsand updatedqwencodeto.qwenignoreine2e-ignore— both specs pass in full.Linked issues
extends) support (0.39.0) #1697.qwenignorefilename and missing feature surfaces #1698 (ignore filename only)🤖 Generated with Claude Code