Skip to content

substrate: install-script language strategy (pre-install bash+PowerShell / post-install TypeScript / Python for AI-ML)#40

Merged
AceHack merged 1 commit intomainfrom
project/post-install-typescript-pre-install-bash-strategy
Apr 27, 2026
Merged

substrate: install-script language strategy (pre-install bash+PowerShell / post-install TypeScript / Python for AI-ML)#40
AceHack merged 1 commit intomainfrom
project/post-install-typescript-pre-install-bash-strategy

Conversation

@AceHack
Copy link
Copy Markdown
Owner

@AceHack AceHack commented Apr 27, 2026

Summary

Aaron 2026-04-27 input after PR #26's INSTALLED.md Python row update — codifies the long-horizon plan for tools/setup/ install machinery:

  • Pre-install scripts stay bash + PowerShell forever. Structural constraint: pre-install runs on a fresh machine with nothing installed, so we must speak the languages every machine ships with (bash 3.2+ on macOS/Linux, PowerShell on Windows). Aaron: "we have to go to the users where they are, can't expect anyting installed."

  • Post-install scripts migrate to TypeScript. Declarative state is easier to express; type-safety catches whole classes of bug; cross-platform behaviour is more uniform than bash. Migration is opportunistic — no forced sweep.

  • Python only for AI/ML eventually. Narrow scope: AI/ML-specific work where the Python ecosystem (NumPy / PyTorch / HuggingFace / scikit-learn) is unmatched. General post-install work goes to TypeScript.

Aaron also validated Otto's Python pickup in PR #26../scratch is the future-declarative-state hint surface where forward-looking factory state lives before canonical promotion. The .mise.toml python = "3.14" pin is authoritative; docs/INSTALLED.md "system default" was stale documentation.

Closing "Good job on everything" validates the substrate cluster Otto-354/355/356/357/358/359 + PR #26.

Composes with

  • Otto-215 — Bun-TS migration sequencing (this PR is the underlying language strategy)
  • Otto-235 — 4-shell bash compat (target for pre-install scope)
  • Otto-247 — version currency (applies to TypeScript/PowerShell pins)
  • Otto-323 / Otto-346 — dependency symbiosis discipline (depending more on bun + TS upstream)

Test plan

  • memory-index-integrity workflow passes (paired MEMORY.md entry + new memory file in same commit)
  • markdownlint passes
  • No code change — substrate-only PR

🤖 Generated with Claude Code

…ll TypeScript / Python for AI-ML

Aaron 2026-04-27 input after PR #26's INSTALLED.md Python row
update: confirms long-horizon plan for tools/setup/ install
machinery — pre-install scripts stay bash + PowerShell forever
(structural constraint: must run on a fresh machine with
nothing installed); post-install scripts migrate to TypeScript
opportunistically (declarative state, type-safe, easier to
test); Python is good for AI/ML scripts eventually but is not
the default for general post-install work.

Aaron also validated Otto's Python pickup as the correct read
of the future-declarative-state in `../scratch` (where forward-
looking factory state lives before canonical promotion).

Closing "Good job on everything" was positive validation of the
substrate cluster Otto-354/355/356/357/358/359 + PR #26.

Composes with Otto-215 (bun-TS migration sequencing), Otto-235
(4-shell bash compat for pre-install), Otto-247 (version
currency), Otto-323 (dependency symbiosis).

Per AgencySignature v1 (Otto-138):
Author: Otto (Anthropic-side AI agent on the Zeta factory)
Origin-substrate: AceHack/Zeta main (post PR #26 sync)
Co-Authored-By: Otto <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 27, 2026 14:33
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AceHack AceHack enabled auto-merge (squash) April 27, 2026 14:33
@AceHack AceHack merged commit 4847b4e into main Apr 27, 2026
12 checks passed
@AceHack AceHack deleted the project/post-install-typescript-pre-install-bash-strategy branch April 27, 2026 14:35
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Codifies the long-horizon language strategy for tools/setup/ install automation (pre-install vs post-install), and records it as first-class project memory.

Changes:

  • Adds a new project memory entry describing the pre-install (bash/PowerShell) vs post-install (TypeScript) split and Python’s intended AI/ML-only scope.
  • Prepends a new index entry in memory/MEMORY.md pointing to the new memory file.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
memory/project_install_script_language_strategy_post_install_typescript_pre_install_bash_powershell_python_for_ai_ml_2026_04_27.md New memory document capturing install-script language strategy and related cross-references.
memory/MEMORY.md Adds newest-first index link to the new memory entry.

declarative-state hints are blessed; that workspace IS the
forward-looking factory state. (Same pattern as Otto reading
the Aaron-Amara conversation archive for upstream design
context — `docs/amara-full-conversation/` IS the
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

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

docs/amara-full-conversation/ is referenced as an existing archive, but that path does not exist in the repository. Update this reference to the correct existing location (or remove the path claim) to avoid a broken cross-reference.

Suggested change
context — `docs/amara-full-conversation/` IS the
context — that archive was part of the upstream

Copilot uses AI. Check for mistakes.
Comment thread memory/MEMORY.md
@@ -1,3 +1,4 @@
- [Install-script language strategy — pre-install bash + PowerShell (where users are with nothing installed) / post-install TypeScript (declarative state, type-safe) / Python only for AI-ML eventually; Aaron 2026-04-27 confirms after PR #26 INSTALLED.md Python row update validation; `../scratch` is future-declarative-state hint surface; `.mise.toml` is canonical pin source-of-truth](project_install_script_language_strategy_post_install_typescript_pre_install_bash_powershell_python_for_ai_ml_2026_04_27.md) — 2026-04-27: composes Otto-215 (bun-TS migration) + Otto-235 (4-shell bash compat for pre-install) + Otto-247 (version currency) + Otto-323 (dependency symbiosis); pre-install structurally bash+PowerShell forever (no-runtime constraint); post-install migrates to TypeScript opportunistically; Python proposals AI/ML-test-gated; closes with Aaron's "Good job on everything" validation of the substrate-cluster Otto-354/355/356/357/358/359 + PR #26.
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

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

This new MEMORY.md index entry is extremely long (multiple clauses + detailed composition/validation notes). memory/README.md documents that MEMORY.md entries should be terse due to the ~200-line cap (see memory/README.md:56-58). Please shorten this line to a minimal summary and leave the detail in the linked memory file.

Suggested change
- [Install-script language strategy — pre-install bash + PowerShell (where users are with nothing installed) / post-install TypeScript (declarative state, type-safe) / Python only for AI-ML eventually; Aaron 2026-04-27 confirms after PR #26 INSTALLED.md Python row update validation; `../scratch` is future-declarative-state hint surface; `.mise.toml` is canonical pin source-of-truth](project_install_script_language_strategy_post_install_typescript_pre_install_bash_powershell_python_for_ai_ml_2026_04_27.md) — 2026-04-27: composes Otto-215 (bun-TS migration) + Otto-235 (4-shell bash compat for pre-install) + Otto-247 (version currency) + Otto-323 (dependency symbiosis); pre-install structurally bash+PowerShell forever (no-runtime constraint); post-install migrates to TypeScript opportunistically; Python proposals AI/ML-test-gated; closes with Aaron's "Good job on everything" validation of the substrate-cluster Otto-354/355/356/357/358/359 + PR #26.
- [Install-script language strategy](project_install_script_language_strategy_post_install_typescript_pre_install_bash_powershell_python_for_ai_ml_2026_04_27.md) — 2026-04-27.

Copilot uses AI. Check for mistakes.
AceHack added a commit that referenced this pull request Apr 27, 2026
… ../SQLSharp = pre-DBSP streaming) HIGH PRIORITY backlog (#41)

* substrate(laptop-source-integration): HIGH PRIORITY backlog row + clarification

Aaron 2026-04-27 framed: every `../scratch` and `../SQLSharp`
reference points at directories that exist only on Aaron's
laptop; future maintainers / agents / contributors can't access
them. HIGH PRIORITY backlog item to integrate the features OR
write designs detailed enough we no longer need the references.

Aaron's binding clarification: NOT literal copy-paste. Goal is
self-contained understanding, NOT verbatim source mirror. Per-
reference triage admits three outcomes:

(a) ship the feature in-repo (small, mature, planned-use)
(b) document the design in-repo with enough detail to rebuild
    without external reference (large, experimental, design IS
    the load-bearing artifact)
(c) delete decorative reference (no information loss)

Current scope: 22 files reference `../scratch`, 14 reference
`../SQLSharp`; 36 unique files, 125 grep hits. Three feature
clusters: (1) toolchain/setup, (2) CI/repo-automation, (3)
research/design hints.

Done = `git grep ../scratch` and `git grep ../SQLSharp` both
return zero matches, AND every previously-referenced feature
is either shipped or design-documented in-repo.

Effort: L (3+ days). Sequenced AFTER PR #26 sync lands per
Aaron's earlier "finish the sync first" framing.

Composes Otto-275 (default to design when uncertain) +
Otto-323/346 (these are NOT external deps, need in-repo or
elimination) + Otto-340 (substrate IS identity, repo must
contain the substrate). PR #26's Python pin update + PR #40's
language strategy proved the absorption pattern works.

Closes with Aaron's "good job today!!" second positive
validation of the day's substrate work.

Per AgencySignature v1 (Otto-138):
Author: Otto (Anthropic-side AI agent on the Zeta factory)
Origin-substrate: AceHack/Zeta main (post PR #26 sync, post
PR #40 install-strategy)
Co-Authored-By: Otto <noreply@anthropic.com>

* substrate: clarify ../scratch = Ace pkg mgr / ../SQLSharp = pre-DBSP streaming

Aaron 2026-04-27 third clarification: critical context about
what the laptop-only directories actually are.

`../scratch` = the SEED of the future ACE PACKAGE MANAGER,
Aaron's declarative package management product. The Python
3.14 mise-pin pickup in PR #26 was the design-driven pattern
in operation. Future-of-Ace-as-Zeta-deliverable is an open
question that affects when `../scratch` becomes a sibling
in-repo project.

`../SQLSharp` = Aaron's pre-DBSP event-stream-processing
attempt with LINQ/SQL surface, BEFORE he discovered the DBSP
mathematical foundation. This is Zeta's progenitor — the
"streaming without rigor" path Zeta replaces with rigorous-
math-grounded DBSP. Many `../SQLSharp` features potentially
subsumed by Zeta's existing operator algebra.

Refined per-reference triage:

For `../scratch` (Ace pkg mgr): toolchain pin → absorb into
canonical location; package-manager design decision → design
doc; decorative → delete.

For `../SQLSharp` (pre-DBSP streaming): feature already in
Zeta DBSP form → document lineage + delete; outside DBSP
scope but needed → design doc; opportunity for future Zeta
graduation → BACKLOG row capturing Zeta-canonical
reimagining; decorative → delete.

This makes design-vs-port decisions substantially clearer
per cluster. Composes with Zeta's linq-expert / sql-expert
/ sql-engine-expert skills which already track the LINQ/SQL
streaming class.

Per AgencySignature v1 (Otto-138):
Author: Otto (Anthropic-side AI agent on the Zeta factory)
Origin-substrate: AceHack/Zeta main
Co-Authored-By: Otto <noreply@anthropic.com>

* fix(pr-41): markdownlint MD032 — "+ WHY + HOW" at line-start interpreted as list

Reword "WHAT + WHY + HOW" to "WHAT, WHY, and HOW" to avoid the
"+" at start-of-line being parsed as a markdown bullet list.

Per AgencySignature v1 (Otto-138):
Author: Otto (Anthropic-side AI agent on the Zeta factory)
Origin-substrate: AceHack/Zeta main
Co-Authored-By: Otto <noreply@anthropic.com>

* fix(pr-41): remove accidentally-committed .playwright-mcp/ + drop/

Previous commit 0b46f75 inadvertently picked up untracked
playwright-mcp tooling artifacts and a drop/ docx via 'git add
-A'. These are local-machine-only files (gitignored in the
broader repo policy) that should not land on a PR. Removing
them now.

Lesson: prefer 'git add <specific-files>' over 'git add -A'
when other untracked files exist in the working tree.

Per AgencySignature v1 (Otto-138):
Author: Otto (Anthropic-side AI agent on the Zeta factory)
Origin-substrate: AceHack/Zeta main
Co-Authored-By: Otto <noreply@anthropic.com>

---------

Co-authored-by: Otto <noreply@anthropic.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.

2 participants