docs(09): resolve open questions in RESEARCH.md

This commit is contained in:
2026-06-15 23:15:59 +08:00
parent d727c4dbce
commit a8f55ff572

View File

@@ -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 | | 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 | | 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`)?** 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.
- 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.
2. **What is the correct kubectl apt package version string for version pinning?** 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.
- 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.
3. **Should the setup script embed skill/script content as base64 or reference files from the git repo?** 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.
- 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.
## Environment Availability ## Environment Availability