# Parameter Management
Parameter definition management commands for managing parameter schema and metadata. Controls parameter definitions (not values - see value.md for that).
**Commands:** 3
**Namespace:** parameter
**Status:** All ✅ Implemented
## Commands in this Namespace
| 19 | [.parameter.add](#command-19-parameteradd) | Add definition | 5 | Medium |
| 20 | [.parameter.list](#command-20-parameterlist) | List definitions | 1 | Low |
| 21 | [.parameter.remove](#command-21-parameterremove) | Remove definition | 2 | Low |
---
### Command :: 19. `.parameter.add`
Adds parameter definition to archive with metadata (name, description, default, mandatory flag). Use this to define template parameters.
**Syntax:**
```bash
genfile .parameter.add name::project_name mandatory::true
genfile .parameter.add name::port default::"8080" description::"Server port"
genfile .parameter.add name::author mandatory::false default::""
```
**Parameters:**
| `name::` | [IdentifierString](../types.md#type-identifierstring) | Parameter name | - | ✅ Yes |
| `mandatory::` | [MandatoryFlag](../types.md#type-mandatoryflag) | Whether parameter is required (0 or 1) | `0` | No |
| `default::` | [ContentString](../types.md#type-contentstring) | Default value for parameter | `null` | No |
| `description::` | [DescriptionText](../types.md#type-descriptiontext) | Parameter description | `""` | No |
| `verbosity::` | [VerbosityLevel](../types.md#type-verbositylevel) | Output detail level (0-5) | `1` | No |
<small>*`verbosity::` is part of [Universal Output Control](../parameter_groups.md#group-1-universal-output-control) parameter group*</small>
**Behavior:**
- Adds parameter definition to archive metadata
- Parameter name must be unique (error if exists)
- Mandatory parameters require values before materialization
- Default values used when value not explicitly set
**Examples:**
**Mandatory parameter:**
```bash
genfile .parameter.add name::project_name mandatory::true description::"Project name"
# Output:
# Added parameter: project_name (mandatory)
```
**Optional with default:**
```bash
genfile .parameter.add name::port mandatory::false default::"3000"
# Output:
# Added parameter: port (optional, default: 3000)
```
**Interactions:**
- Typical workflow: `.parameter.add` (schema) → `.value.set` (instance data)
- Dependencies: None
**Related Commands:**
- [.parameter.list](#command-20-parameterlist) - List definitions
- [.value.set](value.md#command-22-valueset) - Set parameter values
- [.discover.parameters](operations.md#command-2-discoverparameters) - Auto-detect parameters
---
### Command :: 20. `.parameter.list`
Lists all parameter definitions in archive with metadata. Use this to inspect parameter schema.
**Syntax:**
```bash
genfile .parameter.list
genfile .parameter.list verbosity::2
```
**Parameters:**
| `verbosity::` | [VerbosityLevel](../types.md#type-verbositylevel) | Output detail level (0-5) | `1` | No |
<small>*`verbosity::` is part of [Universal Output Control](../parameter_groups.md#group-1-universal-output-control) parameter group*</small>
**Behavior:**
- Lists all parameter definitions
- Shows name, mandatory flag, default value, description
- Sorted alphabetically by name
**Examples:**
**Basic listing:**
```bash
genfile .parameter.list
# Output:
# Parameters (3 total):
# project_name (mandatory, no default)
# port (optional, default: 3000)
# author (optional, default: "")
```
**Verbose listing:**
```bash
genfile .parameter.list verbosity::2
# Output:
# Parameters (3 total):
#
# 1. project_name
# Mandatory: yes
# Default: (none)
# Description: Project name
#
# 2. port
# Mandatory: no
# Default: 3000
# Description: Server port
#
# 3. author
# Mandatory: no
# Default: ""
# Description: (none)
```
**Related Commands:**
- [.parameter.add](#command-19-parameteradd) - Add parameters
- [.value.list](value.md#command-23-valuelist) - List parameter values
---
### Command :: 21. `.parameter.remove`
Removes parameter definition from archive. Use this to clean up unused parameters.
**Syntax:**
```bash
genfile .parameter.remove name::old_param
genfile .parameter.remove name::unused verbosity::2
```
**Parameters:**
| `name::` | [IdentifierString](../types.md#type-identifierstring) | Parameter name to remove | - | ✅ Yes |
| `verbosity::` | [VerbosityLevel](../types.md#type-verbositylevel) | Output detail level (0-5) | `1` | No |
<small>*`verbosity::` is part of [Universal Output Control](../parameter_groups.md#group-1-universal-output-control) parameter group*</small>
**Behavior:**
- Removes parameter definition from archive
- Parameter must exist (error if not found)
- Also removes associated value if set
**Examples:**
**Basic usage:**
```bash
genfile .parameter.remove name::deprecated_param
# Output:
# Removed parameter: deprecated_param
```
**Related Commands:**
- [.parameter.add](#command-19-parameteradd) - Add parameters
- [.value.clear](value.md#command-24-valueclear) - Clear values without removing definitions
---
## See Also
- [Value Operations](value.md) - Parameter value management
- [Dictionary: Parameter](../dictionary.md#parameter) - Parameter concept explanation
- [Parameters Reference](../params.md) - CLI parameter documentation