Commit Graph
3943 Commits
Author SHA1 Message Date
Jeffrey Montoya a7fd960b20 feat(gateguard): add change profile for first-touch edits
Pure, bounded analysis of Edit/Write text: public surface, data handling, and comment/whitespace-only edits.
2026-09-29 21:50:12 -04:00
Jeffrey Montoya 979d5be822 docs(gateguard): move code rationale to design notes 2026-09-29 21:50:12 -04:00
Jeffrey Montoya ea86d156fe refactor(gateguard): move search evidence and state helpers to lib 2026-09-29 21:50:12 -04:00
Jeffrey Montoya f84d31a83f docs(gateguard): clarify when the sibling time window applies 2026-09-29 21:50:12 -04:00
Jeffrey Montoya 442a6da150 test(gateguard): cover added sensitive key and credential names
List id_ecdsa, id_dsa, .netrc and .pgpass as sensitive in the skill docs.
2026-09-29 21:50:12 -04:00
Jeffrey Montoya bd12ff4cfa fix(gateguard): recognise all PowerShell -Exclude spellings
Filter parameters resolve by unambiguous prefix, colon form and comma lists.
Unresolvable parameters and their values are never a stem source.
2026-09-29 21:50:11 -04:00
Jeffrey Montoya e5b95ce921 fix(gateguard): match glob bracket classes exactly
Include and exclusion globs now honour class members, ranges and negation.
A malformed class admits nothing as an include and covers the target as an exclusion.
2026-09-29 21:50:11 -04:00
Jeffrey Montoyaandcoderabbitai[bot] 332d3d8fef Update scripts/lib/gateguard-target-class.js
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-09-29 21:50:11 -04:00
Jeffrey Montoya 92b9d7c7be docs(gateguard): document first-touch classes, search credit, and denial cap 2026-09-29 21:50:11 -04:00
Jeffrey MontoyaandSulimanAbdulrazzaq e98a9da288 feat(gateguard): improve first-touch signal quality and session efficiency
- Ask class-specific first-touch questions (instruction, test, prose,
  config, code); code questions are unchanged.
- Credit a completed Glob/Grep/LS or shell search from the current human
  turn that covered the target; Read and exclusion globs never count.
- Collapse same-class new-file creations in one directory within a turn.
- Add opt-in GATEGUARD_FACT_FORCE_MAX_DENIALS session cap (from #2755).
- Always gate sensitive targets, judged on lexical and real paths.
- Canonicalize checked-path keys.

Closes #2608

Co-authored-by: SulimanAbdulrazzaq <suliman9000a@gmail.com>
2026-09-29 21:49:46 -04:00
Affaan Mustafa c70874fae9 feat(pi): curated pi/core skills+prompts profile, CI load test, and 2.2.2 release sync (#3264)
Adds a curated, Pi-native, skills+prompts-only profile at pi/core/ for downstream packagers that mirror GitHub Releases.

- manifests/pi-core.json: explicit include lists, per-item exclusion reasons, curation rules, safety allowlists; every root skill and command must be classified.
- scripts/build-pi-core.js regenerates pi/core deterministically (package.json from VERSION, LICENSE, README.md, CURATION.md, skills/, commands/); --check fails CI on drift. council is renamed ecc-council inside pi/core only.
- Safety checks: no callable endpoints outside the allowlist, no npx/curl|sh/pip install, no secrets, no absolute home paths, no symlinks, valid frontmatter, no duplicate names.
- CI: build + drift check and an offline Pi CLI load test of pi/core.
- Release: VERSION, package.json and pi/core/package.json at 2.2.2, CHANGELOG, tag-triggered release verification, and a two-week cadence in CONTRIBUTING.md.

pi/core: 123 of 293 skills and 24 of 94 commands; 35,006 characters of skill description text.
v2.2.2
2026-09-29 20:24:05 -05:00
Santhi Prakash c4c5170654 Merge branch 'main' into fix/plan-orchestrate-retired-orchestrate
- Problem: main d30588f9 (integrate-reviewed-followups) added a skill and
  bumped the skill-triggers registryDigest, conflicting with this branch's
  own digest refresh for the plan-orchestrate SKILL.md edit.
- Fix: take main's manifest and recompute registryDigest over the merged
  tree via scripts/lib/context-pack-registry.js; triggers, triggersDigest
  and generatedAt untouched.
- Verification: environment reproduces both sides' committed digests on
  their own trees; merged-tree digest a6b6bce7...; validate-context-profiles
  293 skills OK; plan-orchestrate registry fixtures 8/8; full
  node tests/run-all.js = 704 passed / 0 failed.
2026-09-29 23:41:25 +00:00
dependabot[bot] f3db4eb2e9 build(deps): bump undici in the npm-security group across 1 directory
Bumps the npm-security group with 1 update in the / directory: [undici](https://github.com/nodejs/undici).


Updates `undici` from 6.28.0 to 6.29.0
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.28.0...v6.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.29.0
  dependency-type: indirect
  dependency-group: npm-security
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-29 23:06:10 +00:00
haelyra d30588f90a Merge pull request #3251 from affaan-m/affaan/integrate-reviewed-followups-20260928
fix: integrate reviewed contributor repairs and bounded installer tests
2026-09-29 19:04:47 -04:00
haelyra 759d841b24 merge: preserve PR #3243 rollback redraw regression 2026-09-29 18:25:59 -04:00
haelyra 51a59a1112 test(gateguard): align spawned hook timeouts 2026-09-29 18:22:26 -04:00
haelyra dc3f44ad5a Merge branch 'main' into affaan/integrate-reviewed-followups-20260928 2026-09-29 18:13:54 -04:00
Samuel Bushi 21500e66d1 fix: synchronize skill trigger registry digest 2026-09-29 21:21:09 +02:00
Santhi Prakash bd9402f774 fix(hooks): scope MCP health checks to MCP tools (#2838)
Anchor the PreToolUse and PostToolUseFailure MCP health-check matchers so non-MCP tool calls do not spawn the health hook.
2026-09-29 15:08:37 -04:00
haelyra 83b66cac25 Merge branch 'main' into fix/gateguard-session-budget 2026-09-29 14:58:53 -04:00
haelyra 97d3c73257 Merge branch 'main' into feat/bengali-language-support 2026-09-29 14:58:53 -04:00
haelyra b6e3915132 Merge branch 'main' into agent/add-mybatis-patterns 2026-09-29 14:58:53 -04:00
haelyra abe2a310ca Merge branch 'main' into codex/add-ui-quality-gate 2026-09-29 14:58:53 -04:00
@James 55abca2118 Merge remote-tracking branch 'origin/feat/update-tinystruct-patterns-skill'
Reconciles a local, unpushed doc fix (missing imports in the ja-JP
database.md example) with a CodeRabbit-suggested wording fix applied
on GitHub to the ja-JP SKILL.md security warning. Non-overlapping files,
no conflicts.
2026-09-29 22:40:59 +08:00
@JamesandClaude Sonnet 5 d0b4652c9d docs: pin tinystruct-patterns frontmatter to upstream framework version
Add metadata.upstream: tinystruct==1.7.34 to both the English skill and
its Japanese translation, so a future sync can mechanically diff the
pinned version against the current tinystruct release instead of
rediscovering drift from prose. Also migrates the legacy top-level
`origin: ECC` key into the metadata block, matching the schema used by
the rest of the skills in this repo (tests/commands/learn-skill-discovery.test.js
already asserts top-level `origin:` is unsupported).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 22:38:05 +08:00
pasmud a85f43b1fa test(control-pane): assert the rollback redraws without waiting for a resize
The malformed-drawing rollback test took its marker baseline before the
malformed poll but only checked it after resizeAgain(). Resize redraws
the accepted view on its own, so the test still passed with the
immediate rollback redraw removed and the canvas left blank until the
operator resized.

Record the log position alongside the baseline and assert the retained
markers are on the canvas immediately after the malformed poll, before
any resize. Scoped to the drawing case, since the events and lanes
cases fail before draw() starts and correctly do not redraw.

Mutating the implementation confirms the assertion bites: disabling the
rollback draw and removing it entirely both fail it with the message
"the rollback must redraw the retained markers immediately".

Test-only change. control-plane-view-ui 27/27, control-plane-view
13/13, control-plane-view-ui-a11y 18/18, ESLint clean on the test file.
2026-09-29 14:02:41 +00:00
Seekers2001 4494ffc1e5 fix(docs-governance): audit UNC markdown links 2026-09-29 17:41:36 +08:00
Roli Bosch d62eb30de0 docs(skills): fix broken bar chart example link in remotion charts rule 2026-09-28 21:13:13 -04:00
Santhi Prakash 431f36d127 fix(manifests): refresh skill-triggers registryDigest for plan-orchestrate
- Problem: CI Test matrix fails on the merge ref with 'Skill triggers manifest is stale: regenerate with scripts/dev/generate-skill-triggers.js'. The SKILL.md sentence added in 8a6e52c9 changes the plan-orchestrate skill content digest that feeds the registry digest, and the committed skill-triggers manifest predates this branch's base.
- Fix: merge current main (the validator and manifest postdate this branch's base, which is why this only bites in CI) and refresh registryDigest to the recomputed value. Triggers are hand-seeded and grounded in the unchanged skill description, so triggers and triggersDigest are intentionally untouched.
- Verification: node scripts/ci/validate-context-profiles.js reproduces the CI error before the fix and passes after (292 skills, triggers 32/292); tests/ci/context-profiles.test.js 3/3; tests/skills/plan-orchestrate-registry.test.js passes; sabotage (reverting the digest) re-fails the validator with the exact CI error.
2026-09-28 23:29:39 +00:00
Santhi Prakash 8937dde67e Merge branch 'main' of https://github.com/affaan-m/ECC into HEAD 2026-09-28 23:19:24 +00:00
Patrick Obrtal 285f1a789e fix: reconcile stale managed install operations 2026-09-28 22:07:05 +02:00
Santhi Prakash 8a6e52c990 test(skills): assert COMMAND-REGISTRY.json is fresh in plan-orchestrate fixtures
- Problem: the registry fixtures validated SKILL.md against the committed docs/COMMAND-REGISTRY.json but nothing in the file asserted the registry itself was fresh, so a standalone run passed against a stale registry (npm test does run command-registry:check first, but this file is also run on its own).
- Fix: rebuild the registry in memory via the exported generateRegistry() and assert deep equality with the committed JSON so drift fails as a regenerate hint with a field diff instead of passing silently; add one sentence to SKILL.md stating that a command retired from commands/ fails closed with the BLOCKED marker like a no-argument command.
- Verification: node tests/skills/plan-orchestrate-registry.test.js passes with the new check 8 (8/8); sabotage with a mutated registry description fails check 8 with the regenerate hint and a field diff.
2026-09-28 17:23:39 +00:00
haimingZZ 23939c637e fix(gateguard): strip SOFT HYPHEN (U+00AD) from sanitizePath 2026-09-29 01:17:25 +08:00
affaan-m ed4b856bfe fix(state-store): preserve ownership and errors through cleanup
Preserve the original contributor histories and apply the exact independently reviewed repair.

Source-Parent: 5785183108
Review-Manifest-SHA256: e223d98c24e357715527b786257901d2ef0bebadb75ac61e5c000fe60da10f9a
2026-09-28 07:29:56 -04:00
affaan-m 48decd0deb docs(bun): clarify isolation, audit coverage and package commands
Preserve the original contributor histories and apply the exact independently reviewed repair.

Source-Parent: edcb389e2c
Review-Manifest-SHA256: c607db261fe8760465af1dffd5f9a3dda42478c5f745dbfa5916fd8e014ef306
2026-09-28 07:16:34 -04:00
affaan-m 93fca4a604 Merge reviewed Biome-filename correction from PR2835
Source-PR: https://github.com/affaan-m/ECC/pull/2835
Source-Head: 7ffea7091a
2026-09-28 07:07:45 -04:00
affaan-m e10bbaa492 Merge reviewed append-assignment correction from PR2965
Source-PR: https://github.com/affaan-m/ECC/pull/2965
Source-Head: eca846248d
2026-09-28 07:07:45 -04:00
affaan-m 7ffea7091a fix(hooks): distinguish Biome configs from results files
Preserve the original contributor histories and apply the exact independently reviewed repair.

Source-Parent: 74023e5689
Review-Manifest-SHA256: 208a6350119857df7c1e5b83a46cdba0b7f7399f58ed60167397920c7a21b454
2026-09-28 07:07:07 -04:00
affaan-m 423b2158a9 docs(ja): match the canonical command count
Preserve the original contributor histories and apply the exact independently reviewed repair.

Source-Parent: e41c9241f5
Review-Manifest-SHA256: df9ec6b308f1935e55f13af1845a99b87a0fc921fb30b16e52fbf70d5120ee81
2026-09-28 07:07:07 -04:00
affaan-m eca846248d fix(hooks): track append assignments in Git override checks
Preserve the original contributor histories and apply the exact independently reviewed repair.

Source-Parent: dee884656e
Review-Manifest-SHA256: 0c7eeef7c2722a605d049daf2dc3c2473c10dd616005afcba21049fc036d8ce9
2026-09-28 07:05:14 -04:00
affaan-m edcb389e2c Merge current main into Bun documentation update
Preserve the contributor source and current repository history before factual documentation corrections.

Source-PR: https://github.com/affaan-m/ECC/pull/2968
Source-Head: 0180e3f547
Integration-Main: d3b8a3e908
2026-09-28 06:48:51 -04:00
affaan-m e41c9241f5 test(installer): pass capability probe as a private script file
Preserve the original contributor histories and apply the exact independently reviewed repair.

Source-Parent: aa0ea42882
Review-Manifest-SHA256: 3d35033783c03f7660b6795e20c1de588fc1cd48850b208e36add955e2446ad7
2026-09-28 06:43:02 -04:00
affaan-m c5bb5579fe fix(codex): separate project guidance from user install defaults
Preserve the original contributor histories and apply the exact independently reviewed repair.

Source-Parent: 81df6475b2
Review-Manifest-SHA256: 272ae1970f0b94fe40dbb974b509b7333682176259f5a1493bbae12d9a7e70cb
2026-09-28 06:42:33 -04:00
affaan-m aa0ea42882 docs: align composed catalog counts with i18n skill
Update four stale skill totals to the293 canonical entries verified by the existing catalog checker.

Reviewed-Parent: 5d4cca811d
Source-Manifest-SHA256: 5281891022c3405cfa0549bb15a15ce4b1df101b7c64780da9cbbd839df3d971
2026-09-28 06:21:25 -04:00
affaan-m 5d4cca811d test: bound installer child shutdown and preserve diagnostics
Keep the original wrapper assertions while supervising owned child groups through pipe closure, reporting failed capability probes, and preserving aggregate counts.

Reviewed-Base: 807f07a687
Source-Manifest-SHA256: 75176a5cfe5345cc93c20fb748ba5a1f159fdeb171b12ae7a8619979fa55edd9
Final-Source-SHA256: 691cb15f7356845a2cc4f84277ff5fd24cd6210ec9995ffefea0ab19509ba076
2026-09-28 06:10:43 -04:00
rubicks-112 81df6475b2 fix(codex): restrict .codex/config.toml to non-escalating keys
The project-scoped reference file shipped an active [profiles.yolo] block
with approval_policy = "never" and exposed MCP servers / approval_policy /
sandbox_mode / notify / profiles.* keys that override the user's own
~/.codex/config.toml when the repo is trusted. AgentShield flags this as
codex-approval-never (CRITICAL) and codex-project-config-escalates (HIGH).

Restrict the project-scoped file to model selection, persistent
instructions, features, and role definitions. Move every other key into a
clearly-marked USER-LEVEL REFERENCE appendix as commented-out examples so
installs still ship a usable template without overriding user policy.

Verified locally with ecc-agentshield scan --path . against .codex/config.toml:
  * pre-fix:  2 critical/high findings
  * post-fix: 0 critical/high findings

Refs: ARU-10 (ECC-SEC-1.1 review CLEAR), ARU-18 (this PR).

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-28 12:42:16 +03:00
affaan-m 807f07a687 Merge reviewed Git environment scope correction for PR2965
Source-PR: https://github.com/affaan-m/ECC/pull/2965
Source-Head: dee884656e
2026-09-28 05:39:46 -04:00
affaan-m dee884656e fix(hooks): preserve Git configuration across shell command scopes
Preserve contributor history while applying the exact reviewed current-main repair.

Source-PR: https://github.com/affaan-m/ECC/pull/2965
Source-Parent: ec0753bc7f
Review-Manifest-SHA256: 0172e3e695e672305f9bc41b0d385d2a299d8ec520c763dd9d7f6da743f76971
2026-09-28 05:38:05 -04:00
affaan-m b5406da674 Merge reviewed optional skill-editor documentation PR2990
Source-PR: https://github.com/affaan-m/ECC/pull/2990
Source-Head: 154fa123d8
2026-09-28 05:36:38 -04:00
Seekers2001 71c812686c Merge upstream/main into codex/docs-governance-audit-foundation 2026-09-28 17:36:09 +08:00