mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-12 22:26:38 +03:00
Qoder ships an Agent Skills system at .qoder/skills/{name}/SKILL.md with
slash-command invocation, mapping cleanly onto the existing transformer
pipeline. Adds Qoder as a 13th first-class harness:
- PROVIDER_PLACEHOLDERS entry in scripts/lib/utils.js (model, config_file,
ask_instruction, command_prefix) mirroring the Pi/Rovo Dev shape.
- PROVIDERS entry in scripts/lib/transformers/providers.js with
configDir=.qoder and the OpenCode/Claude Code frontmatter field set
(user-invocable, argument-hint, license, compatibility, metadata,
allowed-tools), since Qoder docs explicitly support those.
- transformQoder named export in scripts/lib/transformers/index.js for
test-spy parity (kept per CLAUDE.md guidance, even though build.js uses
PROVIDERS directly).
- .qoder added to PROVIDER_DIRS in bin/commands/skills.mjs so the CLI
detects existing Qoder installs.
- HARNESSES.md updated: official docs row, frontmatter support column,
directory structure row, and "Last verified" date bumped.
- DEVELOP.md reference link added.
- .github/ISSUE_TEMPLATE/feature_request.md and PULL_REQUEST_TEMPLATE.md
extended with Qoder in the provider checklists.
- Built .qoder/skills/impeccable/ tree committed (per CLAUDE.md harness
output dirs are tracked so npx skills can read them at install time).
The dynamic providers.test.js loop picks up Qoder automatically; all
non-prefix Qoder cases pass. The pre-existing Windows-only prefix-test
flake affects every provider equally and is out of scope for this PR.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
20 lines
1.1 KiB
JavaScript
20 lines
1.1 KiB
JavaScript
import { createTransformer } from './factory.js';
|
|
import { PROVIDERS } from './providers.js';
|
|
|
|
// Named exports exist primarily as stable spy targets for the test suite
|
|
// (build.test.js uses spyOn(transformers, 'transformCursor') etc.). build.js
|
|
// itself uses createTransformer + PROVIDERS directly, not these.
|
|
export const transformCursor = createTransformer(PROVIDERS.cursor);
|
|
export const transformClaudeCode = createTransformer(PROVIDERS['claude-code']);
|
|
export const transformGemini = createTransformer(PROVIDERS.gemini);
|
|
export const transformCodex = createTransformer(PROVIDERS.codex);
|
|
export const transformAgents = createTransformer(PROVIDERS.agents);
|
|
export const transformGitHub = createTransformer(PROVIDERS.github);
|
|
export const transformKiro = createTransformer(PROVIDERS.kiro);
|
|
export const transformOpenCode = createTransformer(PROVIDERS.opencode);
|
|
export const transformPi = createTransformer(PROVIDERS.pi);
|
|
export const transformQoder = createTransformer(PROVIDERS.qoder);
|
|
export const transformRovoDev = createTransformer(PROVIDERS['rovo-dev']);
|
|
|
|
export { createTransformer, PROVIDERS };
|