Skip to content

fix(portability): 0.34.2 — jq object-value pipeline broke the Linux CI lane - #85

Merged
Cain-Ish merged 2 commits into
mainfrom
fix/jq-object-pipeline-portability
Jul 24, 2026
Merged

fix(portability): 0.34.2 — jq object-value pipeline broke the Linux CI lane#85
Cain-Ish merged 2 commits into
mainfrom
fix/jq-object-pipeline-portability

Conversation

@Cain-Ish

Copy link
Copy Markdown
Owner

Summary

The 0.34.1 release push went RED on the Linux CI lane: test-merge-persona-signals failed with a jq compile error (syntax error, unexpected '/', expecting '}'). Root cause: the new score-decay expression used a bare pipeline as a jq object value ({score: a | b / c}) — parses on the newer jq Windows dev boxes ship, rejected by the older jq on the CI runner. Windows-green-only is this repo's documented cross-platform trap; it fired again and was caught in post-push review.

Fix

  • scripts/merge-persona-signals.sh: the whole score value expression sits in one enclosing group — the conservative object-value grammar every jq version accepts. Comment states the constraint.
  • Repo-wide sweep for other multiline object-value pipeline sites: none.
  • Version lockstep 0.34.1 → 0.34.2 (shipped-surface change; tripwire satisfied vs base).

Verification

  • Local (Windows): test-merge-persona-signals ALL PASS; bash -n clean; full pre-push suite re-attested green on push.
  • The real verdict for this class is this PR's Linux lane — that is the environment that rejected the old grammar.

Do not merge yet — analyzer pass requested in comments.

🤖 Generated with Claude Code

…jq object-value grammar broke Linux CI

test-merge-persona-signals went red on the Linux lane: the score expression was
a bare pipeline as an object value ({score: a | b / c}), which newer jq parses
but the CI runner's older jq rejects ('unexpected /, expecting }'). The whole
value now sits in one enclosing group — the conservative grammar every jq
accepts. Repo-wide sweep found no other multiline object-value pipeline sites.
Local suite green; the Linux lane is the real verdict on this PR.

Pushed-after-Windows-green-only is the exact cross-platform class this repo
documents; the release CI failure was caught in post-push review, not before —
recorded for the failure chronicle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 24, 2026 18:16
@Cain-Ish

Copy link
Copy Markdown
Owner Author

C:/Program Files/Git/ecc-tools analyze

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a cross-platform jq parsing incompatibility that broke the Linux CI lane by ensuring the score object-value expression in merge-persona-signals.sh is wrapped in an enclosing group, and bumps plugin versions to ship the fix.

Changes:

  • Wrap the score: jq object value in an enclosing parenthesized expression to avoid “bare pipeline as object value” parsing failures on older jq.
  • Add an inline comment documenting the jq grammar constraint to prevent regressions.
  • Bump plugin/marketplace versions from 0.34.10.34.2.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
scripts/merge-persona-signals.sh Wraps the jq score value pipeline in an enclosing group for compatibility with older jq on Linux CI.
.claude-plugin/plugin.json Bumps plugin version to 0.34.2 to ship the portability fix.
.claude-plugin/marketplace.json Bumps marketplace plugin version to 0.34.2 to keep versions in lockstep.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Cain-Ish

Copy link
Copy Markdown
Owner Author

/ecc-tools audit

@ecc-tools

ecc-tools Bot commented Jul 24, 2026

Copy link
Copy Markdown

🔒 AgentShield Security Scan

⏳ Scanning Cain-Ish/claude-code-plugin for security issues...

Discovering config files, running rules (secrets, permissions, hooks, MCP, agents)

@ecc-tools

ecc-tools Bot commented Jul 24, 2026

Copy link
Copy Markdown

🔒 AgentShield Security Scan

Repository: Cain-Ish/claude-code-plugin

Score: 95/100 (Grade A)

Findings

Severity Rule File Description
🟡 Medium hooks-no .claude/settings.json No PreToolUse security hooks
🔵 Low permissions-missing .claude/settings.json Missing deny: rm -rf
🔵 Low permissions-missing .claude/settings.json Missing deny: sudo
🔵 Low permissions-missing .claude/settings.json Missing deny: chmod 777
🔵 Low permissions-missing .claude/settings.json Missing deny: ssh
🔵 Low permissions-missing .claude/settings.json Missing deny: > /dev/
🔵 Low permissions-missing hooks/hooks.json Missing deny: rm -rf
🔵 Low permissions-missing hooks/hooks.json Missing deny: sudo
🔵 Low permissions-missing hooks/hooks.json Missing deny: chmod 777
🔵 Low permissions-missing hooks/hooks.json Missing deny: ssh
🔵 Low permissions-missing hooks/hooks.json Missing deny: > /dev/

Summary

  • 0 Critical, 0 High, 1 Medium, 10 Low, 0 Info
  • Scanned 11 configuration files
  • Rules checked: secrets, permissions, hooks, MCP, agents (focused subset)

Next Steps

  • Review medium/low findings when convenient
  • Run npx ecc-agentshield scan locally for the full 102-rule scan

AgentShield | ECC Tools

@Cain-Ish

Copy link
Copy Markdown
Owner Author

/ecc-tools analyze

@ecc-tools

ecc-tools Bot commented Jul 24, 2026

Copy link
Copy Markdown

Analysis Queued

Analyzing Cain-Ish/claude-code-plugin on pull request head 4cb19df926ff

Analysis Pipeline
Stage Description Status
Compare Snapshot Resolving PR head/base diff before branch fallback pending
Commit History Fetching up to 200 commits (queued-mode cap) pending
File Sampling Extracting code patterns and structure pending
Pattern Detection AI analysis of conventions and workflows pending
Bundle Generation Creating skills, rules, commands, identity, and instincts pending
Pull Request Opening PR with generated files pending

Estimated time: 2-5 minutes depending on repository size.


8/10 analyses remaining this month (free tier) | ECC Tools

@ecc-tools

ecc-tools Bot commented Jul 24, 2026

Copy link
Copy Markdown

Analyzing 200 commits...

@ecc-tools

ecc-tools Bot commented Jul 24, 2026

Copy link
Copy Markdown

Analysis Complete

Generated ECC bundle from 1 commits | Confidence: 50%

View Pull Request #86

Repository Profile
Attribute Value
Language TypeScript
Framework Not detected
Commit Convention conventional
Test Directory separate
Changed Files (3)
Metric Value
Files changed 3
Additions 7
Deletions 4

Top hotspots

Path Status +/-
scripts/merge-persona-signals.sh modified +5 / -2
.claude-plugin/marketplace.json modified +1 / -1
.claude-plugin/plugin.json modified +1 / -1

Top directories

Directory Files Total changes
scripts 1 7
.claude-plugin 2 4
Analysis Depth Readiness (commit-history, 7%)

ECC Tools uses this to decide whether recommendations should stay at commit-history/setup guidance or expand into CI, security, harness, reference-set, AI-routing, and team backlog work.

Area Status Evidence / Next Step
Commit history Partial 1 commits sampled
CI/CD signals Missing Add workflow files or CI troubleshooting evidence so ECC Tools can reason about pipeline setup.
Security evidence Missing Add AgentShield, audit, SARIF, SBOM, or security review evidence so recommendations can cover security posture.
Harness configuration Missing Add Claude, Codex, OpenCode, Zed, dmux, MCP, plugin, or cross-harness config evidence for harness-agnostic recommendations.
Reference/eval evidence Missing Add fixtures, golden traces, reference sets, or evaluator benchmarks so deeper recommendations have regression evidence.
AI routing and cost controls Missing Add model-routing, budget, usage, or cost-control files before relying on AI-heavy automation recommendations.
Team handoff and project tracking Missing Add roadmap, runbook, project, Linear, or follow-up tracking docs so generated work can land in a team queue.
Reference Set Readiness (0/7, 0%)
Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.
Likely Future Issues (2)
Severity Signal Why it may show up
MEDIUM Harness config changes may ship without compatibility evidence 2 harness config paths changed; 0 harness compatibility evidence artifacts changed
MEDIUM Install or operator docs may drift from the shipped surface 2 install-facing paths changed; 0 docs or README files changed
  • Harness config changes may ship without compatibility evidence: The PR changes harness, MCP, plugin, or agent configuration without touching harness audit, adapter matrix, cross-harness docs, or compatibility regression evidence.
  • Install or operator docs may drift from the shipped surface: The PR changes install-facing or workflow-facing files without touching docs or README guidance.
Suggested Follow-up Work (2)
Type Suggested title Targets
PR harness: add config quality evidence for .claude-plugin/marketplace.json + .claude-plugin/plugin.json .claude-plugin/marketplace.json, .claude-plugin/plugin.json
ISSUE docs: sync install/operator guidance for .claude-plugin/marketplace.json .claude-plugin/marketplace.json
  • harness: add config quality evidence for .claude-plugin/marketplace.json + .claude-plugin/plugin.json: Backfill harness audit, adapter matrix, or cross-harness compatibility evidence before another config change lands on the touched surface.
  • docs: sync install/operator guidance for .claude-plugin/marketplace.json: Track the docs sync explicitly if the current PR is not going to update the install-facing guidance.

Copy-ready bodies

harness: add config quality evidence for .claude-plugin/marketplace.json + .claude-plugin/plugin.json

## Summary
- Add harness compatibility evidence for the recently changed config surface.

## Why
- Backfill harness audit, adapter matrix, or cross-harness compatibility evidence before another config change lands on the touched surface.

## Touched paths
- `.claude-plugin/marketplace.json`
- `.claude-plugin/plugin.json`

## Validation
- Run or update the harness audit, adapter compliance matrix, or cross-harness compatibility check for the changed config.
- Add or update a regression, fixture, or doc evidence path that covers the affected harness, MCP, plugin, or agent loading behavior.

docs: sync install/operator guidance for .claude-plugin/marketplace.json

## Summary
- Update the install or operator-facing docs that should reflect the changed surface.

## Why
- Track the docs sync explicitly if the current PR is not going to update the install-facing guidance.

## Touched paths
- `.claude-plugin/marketplace.json`

## Validation
- Update the relevant README / docs / operator guidance pages.
- Verify the documented commands, config paths, and setup steps still match the shipped behavior.
Review Activity (1 reviews, 0 inline comments, 0 unresolved threads)
Signal Count
Approvals 0
Change requests 0
Comment-only reviews 1
Dismissed reviews 0
Pending reviews 0
Review threads 0
Unresolved threads 0
Outdated threads 0
Latest review Commented
Latest submitted at 2026-07-24T18:19:28Z

Latest reviewer states

Reviewer State Submitted
@copilot-pull-request-reviewer[bot] Commented 2026-07-24T18:19:28Z
Review Follow-up Signals (1)
Severity Signal Evidence
MEDIUM Get an explicit approval No approving review is recorded for this PR

Recommended next actions

  • Ask for an approval after requested changes and unresolved discussions are addressed.
Generated Instincts (16)
Domain Count
git 5
code-style 9
testing 2

After merging, import with:

/instinct-import .claude/homunculus/instincts/inherited/claude-code-plugin-instincts.yaml

Files

  • .claude/ecc-tools.json
  • .claude/skills/claude-code-plugin/SKILL.md
  • .agents/skills/claude-code-plugin/SKILL.md
  • .agents/skills/claude-code-plugin/agents/openai.yaml
  • .claude/identity.json
  • .codex/config.toml
  • .codex/AGENTS.md
  • .codex/agents/explorer.toml
  • .codex/agents/reviewer.toml
  • .codex/agents/docs-researcher.toml
  • .claude/homunculus/instincts/inherited/claude-code-plugin-instincts.yaml

ECC Tools | Everything Claude Code

Audit-adopted subset: least-agency denies for catastrophic shell shapes in the
repo dev environment. Deliberately NOT adopted: a blanket rm -rf deny (scratch
cleanup is routine; the persona-tool-guard's PreToolUse rules own risky-bash
detection with warn/ask verdicts — a stronger mechanism than settings globs)
and redirect-pattern denies (mid-command glob matching is unreliable; the
flow-guard scans egress content at PreToolUse instead). The scanner's
hooks.json findings were wrong-surface: deny lists do not live in a hooks
manifest, and the PreToolUse guard coverage it reported missing is exactly
what hooks/hooks.json wires (symlink/persona/wiki-write/flow guards,
liveness-probed by tests).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Cain-Ish
Cain-Ish merged commit 781f035 into main Jul 24, 2026
3 checks passed
@Cain-Ish
Cain-Ish deleted the fix/jq-object-pipeline-portability branch July 24, 2026 18:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants