Skip to content

Harden Agent OS installation and adapters - #348

Open
jarmo-blip wants to merge 5 commits into
buildermethods:mainfrom
jarmo-blip:agent/harden-agent-os-installation
Open

Harden Agent OS installation and adapters#348
jarmo-blip wants to merge 5 commits into
buildermethods:mainfrom
jarmo-blip:agent/harden-agent-os-installation

Conversation

@jarmo-blip

Copy link
Copy Markdown

Summary

  • harden profile installation and synchronization with staged writes, manifests, path validation, and local-change protection
  • add Claude Code, Codex, Cursor, and Antigravity adapters
  • add full-path standards indexing, doctor and manifest-scoped uninstall commands
  • make prompts host-agent independent and add context and validation guidance
  • add functional regression tests, ShellCheck, and CI

Why

The packaged default profile did not install correctly, shell counters could
terminate scripts under set -e, nested standards collided in the YAML index,
and profile names could escape the intended directory. Installation also only
implemented a Claude-specific destination despite broader compatibility claims.

Impact

Existing unmanaged standards are preserved. Manifest-managed local edits fail
closed unless --force is explicitly supplied. Installations can be previewed
with --dry-run, diagnosed with doctor.sh, and removed using the scoped
manifest-based uninstaller.

Validation

  • bash -n scripts/*.sh install_agent_os.sh tests/run.sh
  • ./tests/run.sh — 14/14 passed
  • ShellCheck — passed with no findings
  • YAML parsing for config.yml and .github/workflows/test.yml
  • git diff --check
  • repo-auditor strict/SARIF diff audit against
    cae8e664fb59a01869718c3151e0f45b7a06a2fb — 19 changed files, 0 scoped findings

@rapharina rapharina left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Thanks for the detailed work here. I’m requesting changes rather than merging because the PR currently combines several unrelated scopes and its installer design conflicts with the direction of the current profile/skills architecture.

What I’d like to keep from this PR:

  • explicit argument parsing and set -Eeuo pipefail
  • --project-dir, --target, --dry-run, --yes, and --force
  • staged writes, manifests, local-change protection, and path/symlink validation
  • doctor and manifest-scoped uninstall
  • ShellCheck plus functional installer tests

Why I can’t merge it as-is:

  1. The PR mixes installer hardening, adapters, an LLM router/optimizer, release preparation, and usage documentation. Please split those into separate PRs; the installer-hardening portion is the part I’d most like to revisit first.
  2. The installer still assumes profiles/<profile>/standards, while the current architecture is moving toward flat profile directories with structured index.yml, global governance, and profile-declared curated skills.
  3. The Codex adapter generates agent-os-* skills from command markdown. That conflicts with installing curated, profile-specific skills such as lian-harness, lian-frontend-harness, and lian-dbhub.
  4. Portability is not established. On macOS, the core installer failed at realpath -m, and sha256sum is not available by default. The full submitted test run also did not complete locally; it failed in llm/optimizer.py at zip(..., strict=True) before reaching the installer tests.
  5. No GitHub checks have run on this PR head.

Suggested next step: open a smaller installer-hardening-only PR rebased on the current profile/skills layout, with the staged-write/manifest/path-validation design and CI. The adapter and LLM optimizer work can then be reviewed separately.

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