User Input
$ARGUMENTS
Consider the user input before proceeding (if not empty). If the
argument names a baseline type (e.g. requirements, design,
test, release) or a label (e.g. v1.0-srs), use it directly.
Audience and tone (interactive mode)
When KISS_AGENT_MODE=interactive (the default), assume the user
has limited technical background and limited domain knowledge.
Run this skill as a guided questionnaire:
- One question at a time. No walls of questions.
- Yes / no first. Phrase so
yes, no, not sure, or skip
is a valid answer.
- Translate jargon, don't strip it. Explain baseline, freeze,
git tag, change-control reference on first use.
- Choices, not blank fields. Offer lettered options (A/B/C/D).
Always include "Not sure — sensible default".
- Always recommend. State which option you would pick and why.
- Show, don't ask. Pre-fill from upstream artefacts.
not sure / skip triggers a sensible default, marked
"(default applied)" and a BASEDEBT entry.
When KISS_AGENT_MODE=auto, skip the questionnaire and log
decisions.
Baseline types
| Type |
Artefacts included |
When to use |
requirements |
srs.md, all spec.md files, srs.extract |
After SRR gate passes |
design |
srs.md, all design/*.md, ADRs, C4 diagrams |
After CDR gate passes |
test |
test-strategy, test-cases, quality-gates |
After TRR gate passes |
release |
all of the above + tasks, deployment-strategy |
After ORR / Go-Live gate |
custom |
user-specified list of files |
Any point in time |
Inputs
.kiss/context.yml
- Source artefacts for the chosen baseline type (see table above)
{context.paths.docs}/project/project-plan.extract —
project name, revision context
- Git repository state (commit SHA, current branch)
Outputs
{context.paths.docs}/baselines/<label>/manifest.md — manifest
listing every snapshotted file with its SHA-256 hash, source path,
and baseline date
{context.paths.docs}/baselines/<label>/manifest.extract —
companion KEY=VALUE ledger
(BASELINE_LABEL, BASELINE_TYPE, BASELINE_DATE, GIT_TAG, FILE_COUNT)
- Frozen copies of all included artefacts placed under
{context.paths.docs}/baselines/<label>/artefacts/
- A git tag
baseline/<label> pointing at the current HEAD
Context Update
Does not mutate .kiss/context.yml.
Handoffs
kiss-change-control references the baseline label in every
change request to indicate which version is being changed.
kiss-phase-gate can call this skill at the end of a gate
checklist to freeze the deliverables.
kiss-status-report mentions the active baseline label in the
project status narrative.
AI authoring scope
Does:
- Determine which files to include based on baseline type.
- Compute SHA-256 hashes of each file.
- Copy artefacts under the baseline directory.
- Write the manifest.
- Instruct the user to run the git tag command (or run it if the
user confirms git write permission).
Does not:
- Modify any source artefact.
- Force-push tags or alter existing baselines.
- Delete old baselines.
Outline
Determine baseline type and label:
- From user input, or ask:
A) requirements, B) design, C) test, D) release, E) custom.
- Label default:
<type>-v<date> (e.g. requirements-v2026-05-01).
Collect file list — based on type, resolve the list of
files to snapshot. In interactive mode, show the list and ask
for confirmation or additions.
Verify files exist — for any missing file, raise a BASEDEBT
entry and ask whether to proceed without it.
Copy artefacts to docs/baselines/<label>/artefacts/
preserving relative paths.
Write manifest — one row per file: source path, destination
path, SHA-256, size.
Git tag — output the exact command the user should run:
git tag -a baseline/<label> -m "Baseline <label> — <type> phase"
In auto mode with BASELINE_GIT_TAG_AUTO=true, run the command
directly.
Write outputs — manifest.md, manifest.extract.
Summary — print:
- Baseline label, type, date, file count.
- Git tag command (if not auto-run).
- Next suggested action.
Usage
<SKILL_DIR> = the integration's skills root.
BASELINE_TYPE="requirements" \
BASELINE_LABEL="requirements-v2026-05-01" \
BASELINE_GIT_TAG_AUTO=false \
bash <SKILL_DIR>/kiss-baseline/scripts/bash/create-baseline.sh --auto
Answer keys
| Key |
Meaning |
Default |
BASELINE_TYPE |
requirements / design / test / release / custom |
(required) |
BASELINE_LABEL |
Directory / tag name |
<type>-v<YYYY-MM-DD> |
BASELINE_GIT_TAG_AUTO |
true / false — create git tag automatically |
false |
BASELINE_EXTRA_FILES |
Colon-separated extra file paths to include |
(empty) |
1---2name: kiss-baseline3description: Snapshots the current state of requirements, design, or test artefacts as a named, immutable baseline under docs/baselines/. Tags the git repository at the same point so the snapshot is permanently reachable in version history. Pairs with kiss-change- control: the baseline is the "from" state any change request must reference. Use after a Requirements (SRR) or Architecture (CDR) phase-gate passes, when a customer requests a formal freeze, or when a change-control board (CCB) needs a reference snapshot.4---567## User Input89```text10$ARGUMENTS11```1213Consider the user input before proceeding (if not empty). If the14argument names a baseline type (e.g. `requirements`, `design`,15`test`, `release`) or a label (e.g. `v1.0-srs`), use it directly.1617## Audience and tone (interactive mode)1819When `KISS_AGENT_MODE=interactive` (the default), assume the user20has **limited technical background and limited domain knowledge**.21Run this skill as a guided questionnaire:2223- **One question at a time.** No walls of questions.24- **Yes / no first.** Phrase so `yes`, `no`, `not sure`, or `skip`25 is a valid answer.26- **Translate jargon, don't strip it.** Explain baseline, freeze,27 git tag, change-control reference on first use.28- **Choices, not blank fields.** Offer lettered options (A/B/C/D).29 Always include "Not sure — sensible default".30- **Always recommend.** State which option you would pick and why.31- **Show, don't ask.** Pre-fill from upstream artefacts.32- **`not sure` / `skip` triggers a sensible default**, marked33 "(default applied)" and a BASEDEBT entry.3435When `KISS_AGENT_MODE=auto`, skip the questionnaire and log36decisions.3738## Baseline types3940| Type | Artefacts included | When to use |41|---|---|---|42| `requirements` | srs.md, all spec.md files, srs.extract | After SRR gate passes |43| `design` | srs.md, all design/*.md, ADRs, C4 diagrams | After CDR gate passes |44| `test` | test-strategy, test-cases, quality-gates | After TRR gate passes |45| `release` | all of the above + tasks, deployment-strategy | After ORR / Go-Live gate |46| `custom` | user-specified list of files | Any point in time |4748## Inputs4950- `.kiss/context.yml`51- Source artefacts for the chosen baseline type (see table above)52- `{context.paths.docs}/project/project-plan.extract` —53 project name, revision context54- Git repository state (commit SHA, current branch)5556## Outputs5758- `{context.paths.docs}/baselines/<label>/manifest.md` — manifest59 listing every snapshotted file with its SHA-256 hash, source path,60 and baseline date61- `{context.paths.docs}/baselines/<label>/manifest.extract` —62 companion KEY=VALUE ledger63 (BASELINE_LABEL, BASELINE_TYPE, BASELINE_DATE, GIT_TAG, FILE_COUNT)64- Frozen copies of all included artefacts placed under65 `{context.paths.docs}/baselines/<label>/artefacts/`66- A git tag `baseline/<label>` pointing at the current HEAD6768## Context Update6970Does not mutate `.kiss/context.yml`.7172## Handoffs7374- `kiss-change-control` references the baseline label in every75 change request to indicate which version is being changed.76- `kiss-phase-gate` can call this skill at the end of a gate77 checklist to freeze the deliverables.78- `kiss-status-report` mentions the active baseline label in the79 project status narrative.8081## AI authoring scope8283**Does:**8485- Determine which files to include based on baseline type.86- Compute SHA-256 hashes of each file.87- Copy artefacts under the baseline directory.88- Write the manifest.89- Instruct the user to run the git tag command (or run it if the90 user confirms git write permission).9192**Does not:**9394- Modify any source artefact.95- Force-push tags or alter existing baselines.96- Delete old baselines.9798## Outline991001. **Determine baseline type and label**:101 - From user input, or ask:102 A) requirements, B) design, C) test, D) release, E) custom.103 - Label default: `<type>-v<date>` (e.g. `requirements-v2026-05-01`).1041052. **Collect file list** — based on type, resolve the list of106 files to snapshot. In interactive mode, show the list and ask107 for confirmation or additions.1081093. **Verify files exist** — for any missing file, raise a BASEDEBT110 entry and ask whether to proceed without it.1111124. **Copy artefacts** to `docs/baselines/<label>/artefacts/`113 preserving relative paths.1141155. **Write manifest** — one row per file: source path, destination116 path, SHA-256, size.1171186. **Git tag** — output the exact command the user should run:119120 ```sh121 git tag -a baseline/<label> -m "Baseline <label> — <type> phase"122 ```123124 In auto mode with `BASELINE_GIT_TAG_AUTO=true`, run the command125 directly.1261277. **Write outputs** — manifest.md, manifest.extract.1281298. **Summary** — print:130 - Baseline label, type, date, file count.131 - Git tag command (if not auto-run).132 - Next suggested action.133134## Usage135136> `<SKILL_DIR>` = the integration's skills root.137138```bash139BASELINE_TYPE="requirements" \140BASELINE_LABEL="requirements-v2026-05-01" \141BASELINE_GIT_TAG_AUTO=false \142 bash <SKILL_DIR>/kiss-baseline/scripts/bash/create-baseline.sh --auto143```144145### Answer keys146147| Key | Meaning | Default |148|---|---|---|149| `BASELINE_TYPE` | `requirements` / `design` / `test` / `release` / `custom` | *(required)* |150| `BASELINE_LABEL` | Directory / tag name | `<type>-v<YYYY-MM-DD>` |151| `BASELINE_GIT_TAG_AUTO` | `true` / `false` — create git tag automatically | `false` |152| `BASELINE_EXTRA_FILES` | Colon-separated extra file paths to include | *(empty)* |