Resolve corresponding artifact family dependencies

This commit is contained in:
2026-08-30 14:20:03 +00:00
parent fb9a4d14f4
commit 257f10c9fb
8 changed files with 285 additions and 11 deletions

View File

@@ -438,7 +438,7 @@ For each `pipeline.scriptorium.artifact_families.<name>`:
| `for_each` | string | Yes | exactly `party.characters` |
| `output_path_pattern` | string | Yes | safe path beneath `artifacts/` with exactly one `{character_id}` token and no other brace syntax |
| `member_vars` | map | No | maps an ordinary Scriptorium variable name to a supported canonical character selector |
| `member_dependencies` | list | No | retained as typed family metadata; it does not yet add ordinary dependencies |
| `member_dependencies` | list | No | unique family keys; each generated member depends on the corresponding generated member of each listed family |
| `publish` | map | No | typed family publish metadata (`enabled`, `required`, `dest_pattern`); it does not yet create publish outputs |
Generated keys are `<family>_<character_id>` and generated output paths must
@@ -452,6 +452,13 @@ Their resolved values are strings. A member variable may not reuse a static
`vars` name; `session_id` remains owned and overwritten by Narratio as for any
other Scriptorium artifact.
Within a family only, an input source may use
`narratio.member_artifact.<family>`. The referenced family must be named in
that family's `member_dependencies`; resolution rewrites the source to the
corresponding ordinary `narratio.artifact.<family>_<character_id>` source.
This syntax is rejected in explicit artifacts and never reaches runtime stages
or Scriptorium.
### Notifications
Narratio currently supports only `notification.mode: noop`, which is also the