Michael Piscitelli
477d23a34f
feat(agents,skills): add opensource-pipeline — 3-agent workflow for safe public releases (#1036)
* feat(agents,skills): add opensource-pipeline — 3-agent open-source release workflow
Adds a complete pipeline for safely preparing private projects for public
release: secret stripping (20+ patterns), independent sanitization audit,
and professional doc generation (CLAUDE.md, setup.sh, README, LICENSE).
Agents added:
- agents/opensource-forker.md — copies project, strips secrets, generates .env.example
- agents/opensource-sanitizer.md — independent PASS/FAIL audit, read-only, 20+ patterns
- agents/opensource-packager.md — generates CLAUDE.md, setup.sh, README, LICENSE, CONTRIBUTING
Skill added:
- skills/opensource-pipeline/SKILL.md — orchestrator: routes /opensource commands, chains agents
Source: https://github.com/herakles-dev/opensource-pipeline (MIT)
* fix: address P1/P2 review findings from Cubic, CodeRabbit, and Greptile
- Collect GitHub org/username in Step 1, use quoted vars in publish command
- Add 3-attempt retry cap on sanitizer FAIL loop
- Use dynamic sanitization verdict in final review output
- Broaden rsync exclusions: .env*, .claude/, .secrets/, secrets/
- Fix JWT regex to match full 3-segment tokens (header.payload.signature)
- Broaden GitHub token regex to cover gho_, ghu_ prefixes
- Fix AWS regex to be case-insensitive, match env var formats
- Tighten generic env regex: increase min length to 16, add non-secret lookaheads
- Separate heuristic WARNING patterns from CRITICAL patterns in sanitizer
- Broaden internal path detection: macOS /Users/, Windows C:\Users\
- Clarify sanitizer is source-read-only (report writing is allowed)
* fix: flag *.map files as dangerous instead of skipping them
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 14:06:23 -07:00
..
2026-03-21 18:10:05 -07:00
2026-03-04 14:48:06 -08:00
2026-03-24 15:43:59 -05:00
2026-03-04 14:48:06 -08:00
2026-03-04 14:48:06 -08:00
2026-03-29 21:21:18 -04:00
2026-03-10 20:53:39 -07:00
2026-02-23 19:00:57 +03:00
2026-03-20 00:20:25 -07:00
2026-02-27 05:50:23 -08:00
2026-03-31 15:08:55 -04:00
2026-03-21 18:10:05 -07:00
2026-03-29 21:21:18 -04:00
2026-03-29 21:21:18 -04:00
2026-03-10 19:23:00 -07:00
2026-03-28 20:06:42 -04:00
2026-03-16 14:03:40 -07:00
2026-03-28 20:06:42 -04:00
2026-03-29 21:21:18 -04:00
2026-03-29 21:21:18 -04:00
2026-03-12 14:49:05 -07:00
2026-03-16 13:35:50 -07:00
2026-03-22 15:40:55 -07:00
2026-03-29 21:21:18 -04:00
2026-03-20 00:20:20 -07:00
2026-03-29 21:21:18 -04:00
2026-03-10 20:53:39 -07:00
2026-03-16 13:35:23 -07:00
2026-02-27 05:50:23 -08:00
2026-02-23 19:00:57 +03:00
2026-03-29 21:21:18 -04:00
2026-03-29 21:21:18 -04:00
2026-03-29 21:21:18 -04:00
2026-03-30 04:46:31 -04:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-03 12:32:35 -08:00
2026-03-14 12:55:25 -07:00
2026-03-29 21:21:18 -04:00
2026-03-16 13:35:44 -07:00
2026-03-22 15:40:53 -07:00
2026-03-12 14:49:05 -07:00
2026-02-23 19:00:57 +03:00
2026-03-28 20:06:42 -04:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-29 21:21:18 -04:00
2026-03-21 18:10:05 -07:00
2026-02-23 19:00:57 +03:00
2026-03-16 14:03:40 -07:00
2026-02-23 19:00:57 +03:00
2026-03-29 21:21:18 -04:00
2026-03-04 14:48:06 -08:00
2026-03-04 14:48:06 -08:00
2026-03-14 12:55:25 -07:00
2026-03-14 12:55:25 -07:00
2026-03-20 06:40:28 -07:00
2026-02-24 14:39:25 +09:00
2026-03-29 21:21:18 -04:00
2026-03-03 12:32:35 -08:00
2026-03-31 14:06:20 -07:00
2026-03-29 21:21:18 -04:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-27 04:02:44 +00:00
2026-03-27 04:02:44 +00:00
2026-03-29 00:04:36 -04:00
2026-03-27 04:02:44 +00:00
2026-03-31 14:05:27 -07:00
2026-03-29 21:21:18 -04:00
2026-02-27 05:50:23 -08:00
2026-02-27 05:50:23 -08:00
2026-03-29 21:21:18 -04:00
2026-03-29 21:21:18 -04:00
2026-02-23 19:00:57 +03:00
2026-03-10 20:53:39 -07:00
2026-03-10 21:25:52 -07:00
2026-03-10 21:25:52 -07:00
2026-03-10 21:25:52 -07:00
2026-03-12 23:53:23 -07:00
2026-03-16 13:35:23 -07:00
2026-03-28 20:41:45 -04:00
2026-03-16 13:35:23 -07:00
2026-03-16 13:35:23 -07:00
2026-03-28 20:06:42 -04:00
2026-03-31 15:08:55 -04:00
2026-02-24 14:39:25 +09:00
2026-03-29 21:21:18 -04:00
2026-02-27 05:50:23 -08:00
2026-03-16 13:35:11 -07:00
2026-03-04 14:48:06 -08:00
2026-03-16 14:03:40 -07:00
2026-03-21 18:10:05 -07:00
2026-03-20 04:44:31 -07:00
2026-03-30 04:41:47 -04:00
2026-03-31 14:06:23 -07:00
2026-03-10 20:42:54 -07:00
2026-03-10 20:42:54 -07:00
2026-03-10 20:42:54 -07:00
2026-03-21 18:10:05 -07:00
2026-03-03 12:32:35 -08:00
2026-03-28 20:06:42 -04:00
2026-03-29 21:21:18 -04:00
2026-02-23 19:00:57 +03:00
2026-03-12 23:40:02 -07:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-19 20:49:34 -07:00
2026-03-29 21:21:18 -04:00
2026-03-04 14:48:06 -08:00
2026-02-23 19:00:57 +03:00
2026-03-31 15:08:55 -04:00
2026-03-28 20:29:51 -04:00
2026-03-29 21:21:18 -04:00
2026-03-29 21:21:18 -04:00
2026-03-20 00:29:17 -07:00
2026-03-16 13:34:25 -07:00
2026-03-28 20:06:42 -04:00
2026-03-22 15:41:04 -07:00
2026-02-28 10:06:43 -08:00
2026-03-29 21:21:18 -04:00
2026-02-23 19:00:57 +03:00
2026-03-22 21:51:49 -07:00
2026-03-29 21:21:18 -04:00
2026-03-31 15:08:55 -04:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-29 21:21:18 -04:00
2026-02-23 19:00:57 +03:00
2026-02-24 14:39:25 +09:00
2026-02-23 19:00:57 +03:00
2026-02-17 17:04:31 +02:00
2026-03-29 21:21:18 -04:00
2026-03-31 14:05:20 -07:00
2026-03-29 00:20:04 -04:00
2026-02-23 19:00:57 +03:00
2026-03-12 14:49:05 -07:00
2026-03-29 21:21:18 -04:00
2026-03-29 21:21:18 -04:00
2026-03-12 15:07:57 -07:00