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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@ node_modules
# translation cache and temporary translation folder
.json-autotranslate-cache
src/data/locales/

# generated method document exports
specs/
66 changes: 62 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,41 @@
## Create a new APIOps project (CLI)

Interactive scaffold:

```bash
npm create apiops@latest
```

This command runs the `create-apiops` initializer package and generates a starter APIOps project template in your current directory. This is useful for a scaffolded proces (with or without AI) to create or review requirements for new APIs or improve existing APIs.
Named project scaffold:

```bash
npm create apiops@latest report-conversion-apiops
```

Non-interactive scaffold:

```bash
npm create apiops@latest -- --name report-conversion-apiops --locale en --cycle api-productization-cycle --style REST --yes
```

When using `npm create`, pass initializer flags after the `--` separator. Flags before the separator are handled by npm itself and may not reach `create-apiops`.

To inspect the initializer options without starting prompts:

```bash
npm create apiops@latest -- --help
```

Useful options:

- `--name <name>` or the first positional argument sets the project directory and package name
- `--locale <locale>` sets the default method locale, such as `en` or `fi`
- `--cycle <cycle-id>` sets the APIOps cycle used for station labels, stakeholders, and recommended resources; default: `api-productization-cycle`
- `--style <style>` sets the API style focus: `REST`, `Event`, `GraphQL`, or `"Not sure yet"`
- `--yes` accepts defaults for omitted options and runs without prompts; use it in non-interactive shells when any prompt answer is omitted
- `--no-install` skips dependency installation and starter canvas generation

This command runs the `create-apiops` initializer package and generates a starter APIOps project template in your current directory. This is useful for a scaffolded process (with or without AI) to create or review requirements for new APIs or improve existing APIs.

This scaffolded project uses the CLI and/or the method-engine library (useful for AI or applications) provided by the main package. They guide the design and development using the APIOps Cycles method and canvases.

Expand Down Expand Up @@ -58,7 +89,8 @@ The `snippet-engine` export resolves canonical resource snippets, including loca
The method also includes reusable stakeholder data:

- `src/data/method/stakeholders.json` defines the shared stakeholder catalog
- `src/data/method/station-stakeholders.json` maps each station to weighted stakeholder participation
- `src/data/method/cycles.json` defines APIOps cycles that reuse canonical core station ids while providing cycle-specific station labels, descriptions, and recommended resources
- `src/data/method/station-stakeholders.json` maps cycle ids to station-specific stakeholder participation and optional responsibilities
- `src/data/method/<locale>/labels.stakeholders.json` stores localized stakeholder titles, descriptions, and involvement labels

Stakeholder involvement uses three lightweight levels:
Expand Down Expand Up @@ -106,11 +138,37 @@ If you spot a problem in the documentation or have an idea for new content, open

### Editing or adding content

The main method content files are located under `src/data/method/`. These base files (`lines.json`, `stations.json`, `resources.json`, `criteria.json`, `station-criteria.json`, `stakeholders.json`, and `station-stakeholders.json`) are not localized and live at the root of the folder. Textual values in them reference label keys. English labels are in `src/data/method/en`, and translations are provided in locale folders through `labels.lines.json`, `labels.stations.json`, `labels.resources.json`, `labels.criteria.json`, and `labels.stakeholders.json`.
The main method content files are located under `src/data/method/`. These base files (`lines.json`, `cycles.json`, `stations.json`, `resources.json`, `criteria.json`, `station-criteria.json`, `stakeholders.json`, and `station-stakeholders.json`) are not localized and live at the root of the folder. Textual values in them reference label keys. English labels are in `src/data/method/en`, and translations are provided in locale folders through `labels.lines.json`, `labels.cycles.json`, `labels.stations.json`, `labels.resources.json`, `labels.criteria.json`, and `labels.stakeholders.json`.

Some longer or more complex resources also use canonical snippet assets under `src/snippets/` linked from `resources.json`. Those snippets are now primarily structured JSON or YAML files, with Markdown kept only where a resource genuinely needs prose content.

Each station links to specific entry criteria followed by the next core station's criteria as exit criteria. Stakeholder participation is modeled separately through `stakeholders.json`, `station-stakeholders.json`, and `labels.stakeholders.json`.
Each station links to specific entry criteria followed by the next core station's criteria as exit criteria. Cycles in `cycles.json` reuse canonical station ids and can override the displayed station label, station description, and recommended resources for that cycle. The `api-*` station and criteria ids are legacy canonical identifiers, not user-facing semantic labels; use cycle labels and descriptions for capability, integration, automation, or API-specific wording. Stakeholder participation is modeled separately through `stakeholders.json`, cycle-scoped mappings in `station-stakeholders.json`, and `labels.stakeholders.json`.

#### Canonical localization terms

Use these terms consistently when editing or translating method labels. The English labels are the editorial master; other locales should express the same concept naturally rather than translating the English sentence literally.

Localization principles:

1. English is the canonical source.
2. Translate concepts, not words.
3. Generic method terminology uses Capability, Interface, Interface contract, Implementation style, Publishing, and Enablement.
4. The API Productization Cycle intentionally remains API-specific.
5. Resource names remain unchanged unless they are already officially localized.
6. Prefer natural language over literal translation.

| English | FI | DE | FR | PT |
| --- | --- | --- | --- | --- |
| Capability | Kyvykkyys | Capability | Capacité | Capacidade |
| Interface | Rajapinta | Schnittstelle | Interface | Interface |
| Interface contract | Rajapintasopimus | Schnittstellenvertrag | Contrat d'interface | Contrato de interface |
| Consumer | Hyödyntäjä | Nutzer | Utilisateur | Utilizador |
| Business value | Liiketoiminta-arvo | Geschäftswert | Valeur métier | Valor de negócio |
| Business goals | Liiketoimintatavoitteet | Geschäftsziele | Objectifs métier | Objectivos de negócio |
| Implementation style | Toteutustapa | Implementierungsstil | Mode de mise en œuvre | Estilo de implementação |
| Publishing | Julkaisu | Veröffentlichung | Publication | Publicação |
| Enablement | Käyttöönoton tuki | Enablement | Enablement | Enablement |
| Readiness | Valmius | Bereitschaft | Préparation | Prontidão |

#### Editing existing method pages

Expand Down
Loading
Loading