[object Object]

← back to Cli Printing Press

fix(cli): align publish-skill contract tests with api-slug staged path (#1459)

c57345a147bfc77d9174468fd3ae2996d156f3f4 · 2026-05-15 07:54:52 -0700 · Trevin Chow

PR #1444 changed SKILL.md Step 6 from `<cli-name>` to `<api-slug>` to
match the actual publish package staging path, but did not update the
companion contract tests in `internal/pipeline/contracts_test.go`. The
path-filtered `test-changes` job did not exercise the pipeline package
on a SKILL-only diff, so the drift slipped through.

Result: `test (pipeline)` now fails on origin/main, which dequeues every
ready-to-merge PR with Go changes (Mergify's in-place rebase inherits
the broken assertion). The sticky-dequeue behavior then traps the PRs
behind `dequeued` until each one is force-requeued.

Update both `strings.Index` assertions in `contracts_test.go` to expect
`<api-slug>` so they match SKILL.md as it stands at ce3aeb4a.

Files touched

Diff

commit c57345a147bfc77d9174468fd3ae2996d156f3f4
Author: Trevin Chow <trevin@trevinchow.com>
Date:   Fri May 15 07:54:52 2026 -0700

    fix(cli): align publish-skill contract tests with api-slug staged path (#1459)
    
    PR #1444 changed SKILL.md Step 6 from `<cli-name>` to `<api-slug>` to
    match the actual publish package staging path, but did not update the
    companion contract tests in `internal/pipeline/contracts_test.go`. The
    path-filtered `test-changes` job did not exercise the pipeline package
    on a SKILL-only diff, so the drift slipped through.
    
    Result: `test (pipeline)` now fails on origin/main, which dequeues every
    ready-to-merge PR with Go changes (Mergify's in-place rebase inherits
    the broken assertion). The sticky-dequeue behavior then traps the PRs
    behind `dequeued` until each one is force-requeued.
    
    Update both `strings.Index` assertions in `contracts_test.go` to expect
    `<api-slug>` so they match SKILL.md as it stands at ce3aeb4a.
---
 internal/pipeline/contracts_test.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/internal/pipeline/contracts_test.go b/internal/pipeline/contracts_test.go
index 4237c7be..ba183f06 100644
--- a/internal/pipeline/contracts_test.go
+++ b/internal/pipeline/contracts_test.go
@@ -162,7 +162,7 @@ func TestPublishSkillUsesLibraryTreeForCliSkillsMirror(t *testing.T) {
 	assert.NotContains(t, skill, "REGISTRY_HAS_ENTRY")
 	assert.NotContains(t, skill, "seed one registry")
 
-	copyIntoLibrary := strings.Index(skill, `cp -r "$STAGING_DIR/library/<category>/<cli-name>"`)
+	copyIntoLibrary := strings.Index(skill, `cp -r "$STAGING_DIR/library/<category>/<api-slug>"`)
 	mirrorRun := strings.Index(skill, "go run ./tools/generate-skills/main.go")
 	require.NotEqual(t, -1, copyIntoLibrary)
 	require.NotEqual(t, -1, mirrorRun)
@@ -183,7 +183,7 @@ func TestPublishSkillPRBodyIncludesStableNovelCommands(t *testing.T) {
 	skill := readContractFile(t, filepath.Join("..", "..", "skills", "printing-press-publish", "SKILL.md"))
 
 	snapshotState := strings.Index(skill, "PREEXISTING_MERGED_PATHS=$(ls")
-	packageCopy := strings.Index(skill, `cp -r "$STAGING_DIR/library/<category>/<cli-name>"`)
+	packageCopy := strings.Index(skill, `cp -r "$STAGING_DIR/library/<category>/<api-slug>"`)
 	require.NotEqual(t, -1, snapshotState)
 	require.NotEqual(t, -1, packageCopy)
 	assert.Less(t, snapshotState, packageCopy)

← ce3aeb4a fix(skills): use api-slug in publish Step 6 staged path (#14  ·  back to Cli Printing Press  ·  fix(cli): substitute server-URL variables from env vars at r e36050fb →