From a8f55ff572055f31a93bd6a72665cff3bd22d90a Mon Sep 17 00:00:00 2001 From: Bagas Purwa Sentika Date: Mon, 15 Jun 2026 23:15:59 +0800 Subject: [PATCH] docs(09): resolve open questions in RESEARCH.md --- .../09-tooling-portable-setup/09-RESEARCH.md | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/.planning/phases/09-tooling-portable-setup/09-RESEARCH.md b/.planning/phases/09-tooling-portable-setup/09-RESEARCH.md index c63725d..01dbf8e 100644 --- a/.planning/phases/09-tooling-portable-setup/09-RESEARCH.md +++ b/.planning/phases/09-tooling-portable-setup/09-RESEARCH.md @@ -534,22 +534,13 @@ with open(path, 'w') as f: | A4 | All five skills can be embedded in the setup script | Architecture Patterns | Skills directory structure may have hidden files (metadata files) that aren't SKILL.md | | A5 | `nikolaik/python-nodejs` base image has `python3` available for YAML manipulation | Code Examples | Would need to use `pip install pyyaml` in setup script or use `yq` instead | -## Open Questions +## Open Questions (RESOLVED) -1. **Is `hermes config set` capable of setting YAML array values (like `docker_volumes`)?** - - What we know: `hermes config set terminal.docker_image ngn-agent:latest` works for simple key-value. - - What's unclear: Whether it can set array elements or only scalar values. - - Recommendation: Plan uses `hermes config set` for scalars, Python/sed for arrays. Test `hermes config set terminal.docker_volumes` — if it fails (likely), fall back to Python YAML manipulation. +1. **Is `hermes config set` capable of setting YAML array values (like `docker_volumes`)?** — RESOLVED: Use `hermes config set` for scalar values only. For YAML arrays like `docker_volumes`, `shell_init_files`, and `docker_forward_env`, use Python's `yaml` module for manipulation with a `sed` fallback if Python is unavailable. The plan's setup script implements this hybrid approach. -2. **What is the correct kubectl apt package version string for version pinning?** - - What we know: The Kubernetes apt repo at `pkgs.k8s.io` provides kubectl for v1.36. - - What's unclear: The exact `apt-get install kubectl=1.36.1-*` format vs just `kubectl=1.36.1`. - - Recommendation: Use `apt-get install -y kubectl` without version pinning for kubectl, since it's meant to match the cluster version which may not be the absolute latest. +2. **What is the correct kubectl apt package version string for version pinning?** — RESOLVED: Do NOT pin kubectl version — install `kubectl` without version specifier since it needs to match the target cluster version which may vary across environments. Other tools (terraform, helm, aws-cli, pup) are pinned via version ARGs. -3. **Should the setup script embed skill/script content as base64 or reference files from the git repo?** - - What we know: The setup script needs to create 5 skills + 2 scripts on a fresh machine. - - What's unclear: Whether these files exist in the ngn-agent git repo or only in `~/.hermes/`. - - Recommendation: If skills are in `.planning/phases/` commit history, extract them at setup time from the git repo. If not, embed as base64. The Hermes skills live at `~/.hermes/skills/ngn-agent/` — check if they're tracked in git. +3. **Should the setup script embed skill/script content as base64 or reference files from the git repo?** — RESOLVED: Embed skill and script content directly in the setup script using heredocs (with a snapshot date comment). This makes the script fully self-contained — no git repo dependency at setup time. When the script is regenerated for new versions, the embedded content is updated. ## Environment Availability