Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Ready to dive deeper? The README only scratches the surface.
Head over to the **[Official Documentation](https://protostar.readthedocs.io/en/stable/)** for:

- **Command Reference:** Full flags and capabilities for `init`.
- **Domain Presets:** Matrices for Scientific, Astrophysics, ML, DSP, and Embedded workflows.
- **Domain Presets:** Matrices for Scientific, Astrophysics, ML, DSP, Embedded, REST API, and CLI Application workflows.
- **Configuration & Shell Autocomplete:** Setting up global defaults, CLI autocompletion, and advanced AST overrides.
- **Architecture Mechanics:** Deep dives into the Orchestrator, Executor, and Manifest lifecycle.

Expand Down
14 changes: 1 addition & 13 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ protostar init
For rapid, repeatable initialization, you can bypass the TUI entirely by providing your desired environment matrix as CLI flags. Universal system workspace hygiene is automatically applied, and IDE settings are conditionally injected based on your global configuration and chosen language footprints.

```bash
protostar init --python --scientific --pytest --markdownlint
protostar init --scientific --pytest --markdownlint
```

**What just happened?**
Expand All @@ -55,18 +55,6 @@ In a fraction of a second, Protostar:

![Headless Scaffolding](../assets/demo_headless.gif){ width="700" }

## Generating Boilerplate

While `init` handles the global repository architecture, the `generate` command handles repetitive, discrete file scaffolding.

```bash
protostar generate cpp-class TelemetryIngestor
```

This safely drops a `TelemetryIngestor.hpp` and `TelemetryIngestor.cpp` into your working directory with standard include guards and empty constructors, aborting safely if the files already exist.

![Target Generation](../assets/demo_generate.gif){ width="700" }

## Exploration & Help

Protostar is self-documenting. You can view the full capabilities matrix and subcommand details directly from your terminal at any time.
Expand Down
2 changes: 1 addition & 1 deletion docs/includes/cli_init_help.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ It is designed to automate environment setup while staying out of your way.
```bash
mkdir orbital-mechanics-sim
cd orbital-mechanics-sim
protostar init --python --scientific --pytest --markdownlint
protostar init --scientific --pytest --markdownlint
```

</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/mechanics/manifest.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ During the `build()` phase, modules utilize the manifest's unified API to regist

## State Serialization

To understand the decoupling, it is helpful to visualize the manifest's internal state. Below is a dynamically generated JSON representation of the aggregate state just before execution, simulating a user running `protostar init --python --astro --ruff`.
To understand the decoupling, it is helpful to visualize the manifest's internal state. Below is a dynamically generated JSON representation of the aggregate state just before execution, simulating a user running `protostar init --astro --ruff`.

--8<-- "manifest_state.md"

Expand Down
2 changes: 1 addition & 1 deletion docs/mechanics/modules.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# The Module Architecture

At its core, Protostar is not a monolithic script; it is a polymorphic module resolution engine. The CLI parser's sole responsibility is translating a matrix of boolean flags (e.g., `--python --astro --ruff`) into an ordered array of instantiated module objects.
At its core, Protostar is not a monolithic script; it is a polymorphic module resolution engine. The CLI parser's sole responsibility is translating a matrix of boolean flags (e.g., `--astro --ruff`) into an ordered array of instantiated module objects.

These modules act as autonomous, stateless plugins that interact strictly with the `EnvironmentManifest`. They do not know about each other, they do not read the host filesystem, and they do not execute system commands directly.

Expand Down
2 changes: 1 addition & 1 deletion docs/mechanics/orchestrator.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ The Orchestrator serves as the absolute boundary for exception propagation. By t

- __OS__: Darwin 25.3.0
- __Python__: 3.14.3
- __Command__: `protostar init --python --astro --crash-test`
- __Command__: `protostar init --astro --crash-test`

### Traceback

Expand Down
10 changes: 5 additions & 5 deletions docs/usage/init.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ To understand how Protostar interprets your flags, observe what happens when we
The following repository tree examples assume you have explicitly configured an IDE in your global settings (e.g., `ide = "vscode"`) in addition to globally enabling direnv. This represents the best practice configuration for vscode users scaffolding python environments. If your config remains set to the default `None`, the `.vscode/settings.json` file will not be generated, though the universal `.vscode/` exclusion will still be safely appended to your `.gitignore`.

=== "The CLI Application (Tooling Focus)"
__Command:__ `protostar init --python --cli --mypy --pytest --pre-commit --markdownlint`
__Command:__ `protostar init --cli --mypy --pytest --pre-commit --markdownlint`

This footprint demonstrates Protostar's ability to wire complex tooling together automatically.

Expand All @@ -54,7 +54,7 @@ To understand how Protostar interprets your flags, observe what happens when we
- **A Note on Speed:** Standard Protostar executions take fractions of a second. However, because `--pre-commit` was flagged, Protostar queued a `pre-commit autoupdate` subprocess at the end of the run to ensure your git hooks are pinned to the absolute latest network releases. This shifts the total execution time to roughly ~4-9 seconds.

=== "The Astrophysics Pipeline (Data Focus)"
__Command:__ `protostar init --python --astro`
__Command:__ `protostar init --astro`

This footprint focuses on managing heavy, serialized data assets and preventing repository bloat.

Expand All @@ -77,7 +77,7 @@ To understand how Protostar interprets your flags, observe what happens when we
- **Artifact Exclusions:** The `.gitignore` was populated with `*.fits`, `*.csv`, and `*.parquet`, preventing you from accidentally committing massive telemetry cubes to version control.

=== "The Machine Learning Stack (Artifact Focus)"
__Command:__ `protostar init --python --ml --docker`
__Command:__ `protostar init --ml --docker`

This footprint focuses on containerization and strictly excluding model artifacts.

Expand Down Expand Up @@ -106,11 +106,11 @@ To understand how Protostar interprets your flags, observe what happens when we

Developers are rightfully terrified of CLI tools that touch their existing configurations. Protostar is engineered specifically to alleviate this anxiety.

Lets say you initialized a machine learning repo yesterday with `protostar init --python --ml --docker`
Lets say you initialized a machine learning repo yesterday with `protostar init --ml --docker`

But today you remembered you'll be doing quasar analysis, and you want to enforce strict typing with `mypy`

You simply run `protostar init --python --astro --mypy --docker` in that existing directory.
You simply run `protostar init --astro --mypy --docker` in that existing directory.

Because Protostar detects existing configuration markers (like `pyproject.toml`), it instantly halts the execution and triggers the __Gravitational Anomaly__ intercept prompt:

Expand Down
2 changes: 1 addition & 1 deletion src/protostar/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ def build_parser() -> argparse.ArgumentParser:
description="Scaffolds base Python configurations, dependencies, and environment files.",
formatter_class=ProtoHelpFormatter,
usage=argparse.SUPPRESS,
epilog="[bold]Example:[/bold]\n protostar init --python --astro --mypy",
epilog="[bold]Example:[/bold]\n protostar init --astro --mypy",
parents=[base_parser],
)

Expand Down