---
id: ATS-PFM-OPS-007
scope: CAP-PFM-OPS-007
product_area: platform
module: operations
revision: 2
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-PFM-OPS-007-01
    title: Continue one list across publishers
    level: api
    proves:
      - BR-CAP-PFM-OPS-007-01
    preconditions: A compatible second service publishes a merge job alongside Platform work.
    steps: 'List, count and paginate across their jobs.'
    expected: Both services participate in a shared order and continuation.
    negative: false
    data_needs: Controlled records and caller contexts matching this scenario’s preconditions.
    bound_to:
      - TST-PFM-OPS-074
    provenance: test
    source: >-
      services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#pages
      across the two macroservices, the cursor of one continuing into the other
    evidence_candidates:
      - >-
        services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#pages
        across the two macroservices, the cursor of one continuing into the other
    category: rule
    binding_evidence:
      - >-
        services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#pages
        across the two macroservices, the cursor of one continuing into the other
  - id: ATS-PFM-OPS-007-02
    title: Exclude unpublished families
    level: api
    proves:
      - BR-CAP-PFM-OPS-007-02
    preconditions: A schema stores a job without publishing views.
    steps: List and open its job.
    expected: The job is unavailable to the shared reader.
    negative: true
    data_needs: Controlled records and caller contexts matching this scenario’s preconditions.
    bound_to:
      - TST-PFM-OPS-074
    provenance: test
    source: >-
      services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#does
      not find a schema that holds the same job and publishes no view
    evidence_candidates:
      - >-
        services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#does
        not find a schema that holds the same job and publishes no view
    category: validation
    binding_evidence:
      - >-
        services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#does
        not find a schema that holds the same job and publishes no view
  - id: ATS-PFM-OPS-007-03
    title: Apply scope to another service’s job
    level: api
    proves:
      - BR-CAP-PFM-OPS-007-03
    preconditions: A published merge job belongs to one customer.
    steps: Read it with allowed and foreign customer contexts.
    expected: Only the allowed context receives its snapshot and published step definition.
    negative: true
    data_needs: Controlled records and caller contexts matching this scenario’s preconditions.
    bound_to:
      - TST-PFM-OPS-074
    provenance: test
    source: >-
      services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#applies
      the caller’s scope to it, as to a job of Platform’s own
    evidence_candidates:
      - >-
        services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#applies
        the caller’s scope to it, as to a job of Platform’s own
    category: permission
    binding_evidence:
      - >-
        services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#applies
        the caller’s scope to it, as to a job of Platform’s own
  - id: ATS-PFM-OPS-007-04
    title: Use the owner’s subject wording
    level: api
    proves:
      - BR-CAP-PFM-OPS-007-04
    preconditions: A merge and monthly snapshot are published.
    steps: List them within and across workspaces.
    expected: The merge uses its owner’s wording and only the workspace snapshot subject includes its month.
    negative: false
    data_needs: Controlled records and caller contexts matching this scenario’s preconditions.
    bound_to:
      - TST-PFM-OPS-066
    provenance: test
    source: >-
      services-platform:modules/jobs/tests/e2e/jobs-tenant-runs.e2e.spec.js#names the snapshot run by its
      snapshot alone when the list is read across tenants
    evidence_candidates:
      - >-
        services-platform:modules/jobs/tests/e2e/jobs-tenant-runs.e2e.spec.js#names the snapshot run by
        its snapshot alone when the list is read across tenants
    category: rule
    binding_evidence:
      - >-
        services-platform:modules/jobs/tests/e2e/jobs-tenant-runs.e2e.spec.js#names the snapshot run by
        its snapshot alone when the list is read across tenants
  - id: ATS-PFM-OPS-007-05
    title: Provide a fallback label
    level: unit
    proves:
      - BR-CAP-PFM-OPS-007-05
    preconditions: One kind is cataloged and another is unfamiliar.
    steps: Resolve both display labels.
    expected: The known label remains and the unfamiliar kind receives readable service-based attribution.
    negative: false
    data_needs: Controlled records and caller contexts matching this scenario’s preconditions.
    bound_to:
      - TST-PFM-OPS-078
    provenance: test
    source: >-
      services-platform:modules/jobs/tests/unit/job-kind-labels.spec.js#humanises an unknown kind and
      attributes it to the application of its schema
    evidence_candidates:
      - >-
        services-platform:modules/jobs/tests/unit/job-kind-labels.spec.js#humanises an unknown kind and
        attributes it to the application of its schema
    category: edge
    binding_evidence:
      - >-
        services-platform:modules/jobs/tests/unit/job-kind-labels.spec.js#humanises an unknown kind and
        attributes it to the application of its schema
  - id: ATS-PFM-OPS-007-06
    title: Keep views aligned with registered kinds
    level: unit
    proves:
      - BR-CAP-PFM-OPS-007-06
    preconditions: The Platform registry and latest view migration are available.
    steps: Compare kind branches and generated view definitions.
    expected: All registered kinds remain represented and the migration matches the builders.
    negative: true
    data_needs: Controlled records and caller contexts matching this scenario’s preconditions.
    bound_to:
      - TST-PFM-OPS-076
    provenance: test
    source: >-
      services-platform:modules/jobs/tests/unit/cross-job-query.view.spec.js#registers exactly the
      Platform job kinds, so none is invisible to the reconciler
    evidence_candidates:
      - >-
        services-platform:modules/jobs/tests/unit/cross-job-query.view.spec.js#registers exactly the
        Platform job kinds, so none is invisible to the reconciler
    category: invariant
    binding_evidence:
      - >-
        services-platform:modules/jobs/tests/unit/cross-job-query.view.spec.js#registers exactly the
        Platform job kinds, so none is invisible to the reconciler
  - id: ATS-PFM-OPS-007-07
    title: Inspect a second service within workspace reach
    category: interaction
    level: api
    proves:
      - BR-CAP-PFM-OPS-005-03
      - BR-CAP-PFM-OPS-007-03
    exercises:
      - CAP-PFM-OPS-007
      - CAP-PFM-OPS-005
    preconditions: A second service publishes a workspace run with a step catalogue.
    steps: 'List the workspace runs, open the second service run, and request its events.'
    expected: The shared monitor preserves the owner’s description and the caller’s workspace reach.
    negative: false
    data_needs: Isolated workspace records and caller contexts for both sides of the interaction.
    bound_to: []
    provenance: proposed
    source: >-
      services-platform:modules/jobs/tests/e2e/jobs-tenant-runs.e2e.spec.js#answers exactly the tenant's
      jobs, of every macroservice;
      services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#applies
      the caller’s scope to it, as to a job of Platform’s own; CAP-PFM-OPS-005; WF-PFM-OPS-007
  - id: ATS-PFM-OPS-007-08
    title: Follow a published run from the staff list
    category: interaction
    level: api
    proves:
      - BR-CAP-PFM-OPS-006-01
      - BR-CAP-PFM-OPS-007-01
    exercises:
      - CAP-PFM-OPS-007
      - CAP-PFM-OPS-006
    preconditions: A compatible second service publishes a run for a customer.
    steps: Find the run in HQ and open its timeline and event history.
    expected: Staff can follow the published record without modifying the owner’s run.
    negative: false
    data_needs: Isolated workspace records and caller contexts for both sides of the interaction.
    bound_to: []
    provenance: proposed
    source: >-
      services-platform:modules/jobs/tests/e2e/jobs.e2e.spec.js#refuses a console caller of the job’s own
      customer the HQ route as 403;
      services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js#pages
      across the two macroservices, the cursor of one continuing into the other; CAP-PFM-OPS-006;
      WF-PFM-OPS-007
evidence:
  - >-
    Pinned capability rules, object invariants, state transitions and workflows are reviewed for testing
    obligations.
  - >-
    Executable bindings refer only to existing suites; no module executable suite runs during this
    documentation job.
coverage:
  rule: covered
  transition: not-applicable
  validation: covered
  permission: covered
  edge: covered
  failure: 'gap: FND-PFM-OPS-059'
  boundary: 'gap: FND-PFM-OPS-059'
  concurrency: 'gap: FND-PFM-OPS-059'
  invariant: covered
  interaction: covered
coverage_notes:
  transition: >-
    This capability reads records without changing their lifecycle; transitions belong to the writing
    capabilities.
  failure: Injected dependency failures need dedicated proof.
  boundary: Exact limits and cross-scope boundaries need dedicated proof.
  concurrency: >-
    No controlled overlapping execution proves the capability’s read or write behavior while related
    state changes.
related_capabilities:
  - CAP-PFM-OPS-005
  - CAP-PFM-OPS-006
workflow_interactions:
  - WF-PFM-OPS-007
coverage_obligations:
  finding: FND-PFM-OPS-059
  uncovered_must_prove: []
  object_invariants_requiring_explicit_trace:
    - INV-DOM-PFM-OPS-001-01
    - INV-DOM-PFM-OPS-001-02
    - INV-DOM-PFM-OPS-001-03
    - INV-DOM-PFM-OPS-001-04
    - INV-DOM-PFM-OPS-001-05
    - INV-DOM-PFM-OPS-001-06
    - INV-DOM-PFM-OPS-001-07
    - INV-DOM-PFM-OPS-001-08
    - INV-DOM-PFM-OPS-001-09
    - INV-DOM-PFM-OPS-001-10
    - INV-DOM-PFM-OPS-001-11
    - INV-DOM-PFM-OPS-001-12
  related_scenarios:
    - capabilities:
        - CAP-PFM-OPS-007
        - CAP-PFM-OPS-005
      scenario: ATS-PFM-OPS-007-07
    - capabilities:
        - CAP-PFM-OPS-007
        - CAP-PFM-OPS-006
      scenario: ATS-PFM-OPS-007-08
  unbound_scenarios:
    - ATS-PFM-OPS-007-07
    - ATS-PFM-OPS-007-08
  transition_review: []
  permission_review: []
  gap_detail: >-
    Unavailable publishers, incompatible contract columns and discovery during new view publication need
    dedicated boundary and failure proof.
workflow_scenarios:
  WF-PFM-OPS-007:
    - ATS-PFM-OPS-005-10
    - ATS-PFM-OPS-007-07
---

# Inspect jobs across Rhythm services: Capability Test Specification

## Coverage

The category map distinguishes authored scenarios from unresolved proof obligations. A bound scenario names an existing executable suite; its recorded result remains unrun.

| Rule | Proof status |
|---|---|
| `BR-CAP-PFM-OPS-007-01` | `ATS-PFM-OPS-007-01`, `ATS-PFM-OPS-007-08` |
| `BR-CAP-PFM-OPS-007-02` | `ATS-PFM-OPS-007-02` |
| `BR-CAP-PFM-OPS-007-03` | `ATS-PFM-OPS-007-03`, `ATS-PFM-OPS-007-07` |
| `BR-CAP-PFM-OPS-007-04` | `ATS-PFM-OPS-007-04` |
| `BR-CAP-PFM-OPS-007-05` | `ATS-PFM-OPS-007-05` |
| `BR-CAP-PFM-OPS-007-06` | `ATS-PFM-OPS-007-06` |

## Interactions With Related Capabilities

Inspect a second service within workspace reach. The shared monitor preserves the owner’s description and the caller’s workspace reach.

Follow a published run from the staff list. Staff can follow the published record without modifying the owner’s run.

## Evidence and Boundaries

Pinned assertion sources support the listed executable bindings. Proposed cases retain the proof required beyond those boundaries. Structured obligations name incomplete object, transition and permission trace; row-level concurrency proof does not establish complete workflow serialization.
