{
  "markdown": "# spec-artifacts-iso\n\n> Filament Module: ISO-style spec artifacts (FR, NFR, StR, US, IT, TC) — unified-shape archetypes (frontmatter schema + body_extraction asserts) validated by quire-rs; per-archetype authoring skeletons are the source of truth (no render templates); iso-spec-core grammar\n\nAn Agent-IX Filament module loaded by [`quire-cli`](https://github.com/agent-ix/quire-cli) and [`quoin`](https://github.com/agent-ix/quoin). The module path is `spec_artifacts_iso`: a `manifest.yaml`, per-kind authoring `skeletons/`, and frontmatter `schemas/`. It contributes doc-backed `archetypes` and `artifact_types` (ISO-style requirement artifacts) — no embedded `object_types`.\n\n## Installing quire-cli\n\n`@agent-ix` packages are published to public npm. Install the CLI globally:\n\n```bash\nnpm install -g @agent-ix/quire-cli\n```\n\nSee https://github.com/agent-ix/quire-cli#install for details.\n\n## Install this module via npm\n\nThis module is also published as a config-only npm package: `@agent-ix/spec-artifacts-iso`.\nThe package root **is** the Filament module (`manifest.yaml` + schemas/skeletons),\nso it works directly as a `--module` target or via quoin's `package:` source.\n\n```bash\nnpm install @agent-ix/spec-artifacts-iso\n```\n\n```bash\n# quoin — resolve the module from npm by name\nquoin plugin install package:@agent-ix/spec-artifacts-iso\n\n# or point any tool at the installed package root\nquire validate spec/**/*.md --module node_modules/@agent-ix/spec-artifacts-iso\n```\n\n## Artifact types provided\n\nThe `Spec` archetype (kind `spec`) is a doc-backed container that holds ISO-style requirement artifacts (its composition expects `StR`, `FR`, `NFR`, `US`, `IT`, `TC`). The artifact types below live inside it.\n\n| Kind | ID pattern | Description |\n|:-----|:-----------|:------------|\n| `FR` | `FR-{next:03d}` | Functional Requirement (ISO/IEC/IEEE 29148): required `## Description` (normative shall/must language) + `## Acceptance Criteria` (`ID \\| Criteria \\| Verification` table, `{id}-AC-N`) + `## Dependencies`; optional `## Inputs`/`## Outputs`/`## Behavior` and a `## Constraints` table (`{id}-CON-N`). |\n| `NFR` | `NFR-{next:03d}` | Non-Functional Requirement / quality constraint (ISO/IEC/IEEE 29148, attribute from ISO 25010): required `## Statement` + `## Measurement and Evaluation` (`Metric \\| Target \\| Threshold \\| Method` table) + `## Verification`; `quality_attribute` is a frontmatter enum. |\n| `StR` | `StR-{next:03d}` | Stakeholder Requirement (ISO/IEC/IEEE 29148 stakeholder triad): required `## Stakeholder Need` + `## Rationale` + `## Validation Criteria`; stakeholders, context, constraints, and traceability are optional. |\n| `US` | `US-{next:03d}` | User Story (ISO/IEC/IEEE 29148): a single required `## Story` matching the \"As a … / I want … / So that …\" shape; all other sections are contextual and informative. |\n| `IT` | `IT-{next:03d}` | Integration Test case (ISO/IEC/IEEE 29119): required six-section set — `## Objective`, `## Target Integration`, `## Preconditions`, `## Inputs`, `## Test Procedure`, `## Expected Results`. |\n| `TC` | `TC-{next:03d}` | Test Case (ISO/IEC/IEEE 29119 essentials): required `## Description` + `## Test Procedure` + `## Expected Results`. |\n| `master-requirements` | _(bundle root)_ | Master Requirements Specification: H1 fixed to \"Master Requirements Specification\"; required `## Purpose`, `## Scope`, `## System Overview`, `## Requirements Architecture`, `## References`; the repo-level `depends_on:` dependency manifest. |\n| `index` | _(`index.md`)_ | OKF bundle directory index: required `## Contents` listing the artifacts in the directory via content-local relative links (not knowledge-graph edges). |\n| `log` | _(`log.md`)_ | OKF bundle update log: required `## History` of dated, non-normative structural changes to the bundle. |\n\n## How this module is used\n\n### With quoin (recommended)\n\n```bash\nquoin plugin install path:../spec-artifacts-iso   # bundled root module; shown for completeness\nquoin catalog list                                # list available artifact kinds\nquoin catalog show FR                             # inspect the FR skeleton + schema\nquoin write . --types FR,NFR                      # scaffold new artifacts\nquoin review                                      # validate + review the spec\n```\n\nSee https://github.com/agent-ix/quoin.\n\n### With quire-cli directly\n\n```bash\nquire schema FR --module ./spec_artifacts_iso                    # show the FR authoring skeleton/schema\nquire validate spec/**/*.md --module ./spec_artifacts_iso        # validate Markdown artifacts\nquire extract spec/functional/FR-001.md --module ./spec_artifacts_iso --archetype FR\n```\n\nSee https://github.com/agent-ix/quire-cli#usage-instructions.\n\n## Authoring conventions\n\n- **FR body**: required = `## Description` + `## Acceptance Criteria` (table).\n  `## Inputs` / `## Outputs` / `## Behavior` / `## Constraints` /\n  `## Dependencies` are optional, all at **level 2** — there is no\n  `## Specification` umbrella. Object FRs carry their kind's anchor sections\n  instead of I/O.\n- **`object:` frontmatter** is the canonical object-kind field (never\n  `object_type:`). It is optional for vanilla behavioral FRs and required for\n  object FRs — kind anchors and extraction hang off it.\n- **NFR body**: required = `## Statement` + `## Measurement and Evaluation`\n  (`Metric|Target|Threshold|Method` table) + `## Verification`;\n  `quality_attribute` is a frontmatter enum (ISO 25010), not a section.\n- **AC Verification cells** use the ISO 29148 methods — `Inspection`,\n  `Analysis`, `Demonstration`, `Test` — optionally annotated `Test (TC-035)`.\n  Checked by the module's `ac-verification-method` lint rule (`quire lint`).\n- **Relationships**: author the explicit `relationships:` array (typed verbs,\n  incl. `specifies` for object FR → behavioral FR). Bare-ID sugar fields\n  (`depends_on:` etc.) are read-side ingestion tolerance only — except in\n  `spec.md` (master-requirements), where `depends_on:` is the repo-level\n  dependency manifest.\n\n## Development\n\nThis is a flat-layout Python 3.13+ package (`spec_artifacts_iso`, no `src/`) managed with Poetry, built and published via GitHub Actions to Google Artifact Registry (PyPI-compatible). All work goes through the Makefile:\n\n```bash\nmake install                  # install dependencies into the Poetry venv\nmake test                     # run pytest\nmake lint                     # ruff + black --check\nmake format                   # auto-format (black + ruff --fix)\nmake build                    # build wheel + sdist under dist/\nmake update-lock              # update poetry.lock\nmake local-publish            # build + publish to local pypi.ix\n```\n\n| Target | Description |\n|:-------|:------------|\n| `install` | Install dependencies in the Poetry venv |\n| `test` | Run tests |\n| `lint` | Run linting (Ruff + Black check) |\n| `format` | Auto-format code (Black + Ruff --fix) |\n| `build` | Build wheel and sdist artifacts |\n| `clean` | Remove all build artifacts |\n| `version` / `info` | Show version / Git info |\n| `update-lock` | Update `poetry.lock` |\n| `add-package p=<name>` | Add a runtime dependency |\n| `add-dev-package p=<name>` | Add a dev dependency |\n| `use-local p=<name>` / `use-upstream p=<name>` | Switch a dep to/from local `pypi.ix` |\n| `local-publish` | Build and publish to local PyPI |\n\nCI runs on `push`, `pull_request`, and `v*.*.*` tags: it runs tests and lint, builds with `poetry build`, and publishes to Artifact Registry via `twine upload -r internal-pypi`. Versioning is dynamic from the Git tag. Required CI config: secret `GCP_SERVICE_ACCOUNT_KEY`; variables `GCP_REGION`, `GCP_PROJECT_NAME`, `GCP_PYPI`.\n\nFor local install from the cluster PyPI proxy (after `make local-publish`):\n\n```bash\npip install --index-url http://pypi.ix/root/dev/+simple/ spec_artifacts_iso\n```\n",
  "bytes": 7844,
  "sha": "6f10c2ea6cf8cf6e568846f557c8c31ed68b9421e4c7026b9077e36ded7ff3a5",
  "repo_slug": "agent-ix/spec-artifacts-iso",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_agent_ix_spec_artifacts_iso_spec_artifac_91cabc2c/readme"
}