Skip to content

Add security tools (tirith, shellfirm) and JACKIN_ env prefix#22

Merged
donbeave merged 12 commits into
mainfrom
feature/security-tools-and-env-prefix
Apr 8, 2026
Merged

Add security tools (tirith, shellfirm) and JACKIN_ env prefix#22
donbeave merged 12 commits into
mainfrom
feature/security-tools-and-env-prefix

Conversation

@donbeave

@donbeave donbeave commented Apr 8, 2026

Copy link
Copy Markdown
Member

Summary

  • Env var rename: CLAUDE_ENVJACKIN_CLAUDE_ENV and CLAUDE_DEBUGJACKIN_DEBUG — all jackin-defined env vars now use the JACKIN_ prefix for clear namespacing
  • Security tools: Install tirith and shellfirm in the construct image via multi-stage Docker build (rust:trixie builder), with shell hooks in .zshrc and MCP server registration in the entrypoint
  • Disable mechanism: Agents can opt out via ENV JACKIN_DISABLE_TIRITH=1 / ENV JACKIN_DISABLE_SHELLFIRM=1
  • Version management: Tool versions pinned in docker/construct/versions.env, loaded by CI workflow as Docker build-args

Details

Why these tools? Claude Code runs with --dangerously-skip-permissions inside jackin containers. Tirith and shellfirm act as safety nets:

  • Tirith catches supply-chain/injection attacks (homograph URLs, pipe-to-shell, base64 chains, credential exfil)
  • Shellfirm catches destructive operations (rm -rf, git push --force, kubectl delete, terraform destroy)

Both provide shell hooks (defense-in-depth) and MCP servers (AI agent self-checking).

Design spec: docs/superpowers/specs/2026-04-08-security-tools-and-env-prefix-design.md

Test plan

  • cargo fmt -- --check && cargo clippy && cargo nextest run — 213 tests pass, zero warnings
  • No stale CLAUDE_DEBUG or "CLAUDE_ENV" references in src/ or docker/
  • New tests: load_agent_passes_debug_flag_when_enabled, entrypoint_registers_security_tool_mcp_servers, entrypoint_mcp_registration_respects_disable_guards
  • Docker build with --build-arg TIRITH_VERSION=0.2.12 --build-arg SHELLFIRM_VERSION=0.3.9 completes successfully
  • tirith --version and shellfirm --version work inside built image

🤖 Generated with Claude Code

donbeave and others added 12 commits April 8, 2026 06:49
Defines the approach for installing tirith and shellfirm in the construct
image via multi-stage Docker build, wiring shell hooks and MCP servers,
and renaming CLAUDE_ENV/CLAUDE_DEBUG to JACKIN_CLAUDE_ENV/JACKIN_DEBUG.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add versions.env approach for tracking tirith/shellfirm versions and
the corresponding construct workflow changes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Eight tasks covering env var renames, multi-stage Docker build for
tirith/shellfirm, shell hooks, MCP registration, CI workflow, and docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…NV in docs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@donbeave donbeave force-pushed the feature/security-tools-and-env-prefix branch from 70cb6ee to 35cddc0 Compare April 8, 2026 07:36
@donbeave donbeave merged commit f24492d into main Apr 8, 2026
4 checks passed
@donbeave donbeave deleted the feature/security-tools-and-env-prefix branch April 8, 2026 07:40
donbeave added a commit that referenced this pull request Apr 20, 2026
…-env-prefix

Add security tools (tirith, shellfirm) and JACKIN_ env prefix
donbeave added a commit that referenced this pull request Apr 21, 2026
…-env-prefix

Add security tools (tirith, shellfirm) and JACKIN_ env prefix
donbeave added a commit that referenced this pull request Apr 21, 2026
Add security tools (tirith, shellfirm) and JACKIN_ env prefix
donbeave added a commit that referenced this pull request Apr 21, 2026
Add security tools (tirith, shellfirm) and JACKIN_ env prefix
donbeave added a commit that referenced this pull request Apr 21, 2026
Add security tools (tirith, shellfirm) and JACKIN_ env prefix
donbeave added a commit that referenced this pull request May 7, 2026
Add security tools (tirith, shellfirm) and JACKIN_ env prefix

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
donbeave added a commit that referenced this pull request May 7, 2026
Add security tools (tirith, shellfirm) and JACKIN_ env prefix

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
donbeave added a commit that referenced this pull request May 7, 2026
…ix (#22)

Defines the approach for installing tirith and shellfirm in the construct
image via multi-stage Docker build, wiring shell hooks and MCP servers,
and renaming CLAUDE_ENV/CLAUDE_DEBUG to JACKIN_CLAUDE_ENV/JACKIN_DEBUG.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Add versions.env approach for tracking tirith/shellfirm versions and
the corresponding construct workflow changes.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Eight tasks covering env var renames, multi-stage Docker build for
tirith/shellfirm, shell hooks, MCP registration, CI workflow, and docs.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
…22)

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Claude <noreply@anthropic.com>
donbeave added a commit that referenced this pull request May 7, 2026
Add security tools (tirith, shellfirm) and JACKIN_ env prefix

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Co-authored-by: Codex <codex@openai.com>
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.

1 participant