ggen 1.2.0

ggen is a deterministic, language-agnostic code generation framework that treats software artifacts as projections of knowledge graphs.
Documentation
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents**

- [Example: CLI subcommand]#example-cli-subcommand
  - [Using Marketplace Gpack (Recommended)]#using-marketplace-gpack-recommended
    - [1. Search and Install]#1-search-and-install
    - [2. Generate Code]#2-generate-code
    - [3. Verify Output]#3-verify-output
  - [Using Local Template (Advanced)]#using-local-template-advanced
  - [Comparison]#comparison
  - [Next Steps]#next-steps

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Example: CLI subcommand

## Using Marketplace Gpack (Recommended)

### 1. Search and Install

```bash
# Search for CLI subcommand gpacks
ggen search rust cli

# Install the gpack
ggen add io.ggen.rust.cli-subcommand
```

### 2. Generate Code

```bash
# Generate using the gpack template
ggen gen io.ggen.rust.cli-subcommand:cli/subcommand/rust.tmpl name=status description="Show application status"
```

### 3. Verify Output

```bash
# Check generated file
cat src/cmds/status.rs
```

Output:

```rust
// Generated by gpack: io.ggen.rust.cli-subcommand
// Template: cli/subcommand/rust.tmpl

use clap::Parser;

#[derive(Parser)]
pub struct StatusArgs {
    /// Show application status
    #[arg(short, long)]
    pub verbose: bool,
}

pub fn status(args: StatusArgs) -> Result<(), Box<dyn std::error::Error>> {
    println!("Application status: Running");
    if args.verbose {
        println!("Detailed status information...");
    }
    Ok(())
}
```

## Using Local Template (Advanced)

Create `templates/cli/subcommand/rust.tmpl` (see quickstart for full template).

Generate:
```bash
ggen gen cli subcommand --vars cmd=status summary="Show status"
```

Outputs:

```
src/cmds/status.rs
```

## Comparison

| Approach | Setup Time | Quality | Updates | Best For |
|----------|------------|---------|---------|----------|
| **Marketplace** | Instant | Community tested | Automatic | Most users |
| **Local** | Manual | Custom | Manual | Special needs |

## Next Steps

- Try the [multi-language example]cli-subcommand-multi.md
- Explore [marketplace gpacks]marketplace.md
- Learn about [template development]templates.md