You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have already implemented test deltas with a custom schema. For every delta spec.md, the schema creates a matching test.md in the same capability directory:
test.md mirrors the delta, requirement, and scenario headings from spec.md. Instead of repeating the scenario description, it records the corresponding test-code changes.
For example:
<!-- spec.md -->## ADDED Requirements### Requirement: CSV export#### Scenario: Export a report as CSV-**WHEN** the user exports a report as CSV
-**THEN** the downloaded file contains the report data
## REMOVED Requirements### Requirement: XML export#### Scenario: Export a report as XML-**WHEN** the user exports a report as XML
-**THEN** an XML file is generated
<!-- test.md -->## ADDED Requirements### Requirement: CSV export#### Scenario: Export a report as CSV-[ADD] Add `exports a report as CSV` to `tests/report-export.test.ts`.
-[ADD] Verify the generated headers and rows.
## REMOVED Requirements### Requirement: XML export#### Scenario: Export a report as XML-[REMOVE] Delete `exports a report as XML`.
-[REMOVE] Delete XML-only fixtures.
For a removed scenario, the test delta removes the old tests. It does not add a permanent negative test whose only purpose is to prove that the removed behavior or code no longer exists.
This works in my custom schema, but I am not sure whether it matches OpenSpec’s intended design.
The concepts documentation defines artifacts as documents within a change. At the same time, the specs/ subtree has special meaning: it contains delta specs that are parsed and merged into the main openspec/specs/ source of truth during sync or archive.
That makes the boundary unclear:
Is changes/<change>/specs/ intended to be an extensible artifact space?
Is using generates: specs/**/test.md an intended custom-schema use case?
Can different schema artifacts own different file patterns inside specs/?
Can a schema declare that spec.md is synced while test.md is only preserved with the archived change?
Or should non-spec companion artifacts always live outside specs/, even when they map one-to-one to its requirements and scenarios?
I am trying to understand whether custom schemas are expected to support companion deltas alongside spec deltas, or whether specs/ is deliberately reserved for OpenSpec’s built-in specification model.
This seems related to #666 and #829, but the narrower question here is whether specs/ is intended to be a schema-managed artifact space.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I have already implemented test deltas with a custom schema. For every delta
spec.md, the schema creates a matchingtest.mdin the same capability directory:The relevant part of the schema looks like this:
test.mdmirrors the delta, requirement, and scenario headings fromspec.md. Instead of repeating the scenario description, it records the corresponding test-code changes.For example:
For a removed scenario, the test delta removes the old tests. It does not add a permanent negative test whose only purpose is to prove that the removed behavior or code no longer exists.
This works in my custom schema, but I am not sure whether it matches OpenSpec’s intended design.
The concepts documentation defines artifacts as documents within a change. At the same time, the
specs/subtree has special meaning: it contains delta specs that are parsed and merged into the mainopenspec/specs/source of truth during sync or archive.That makes the boundary unclear:
changes/<change>/specs/intended to be an extensible artifact space?generates: specs/**/test.mdan intended custom-schema use case?specs/?spec.mdis synced whiletest.mdis only preserved with the archived change?specs/, even when they map one-to-one to its requirements and scenarios?I am trying to understand whether custom schemas are expected to support companion deltas alongside spec deltas, or whether
specs/is deliberately reserved for OpenSpec’s built-in specification model.This seems related to #666 and #829, but the narrower question here is whether
specs/is intended to be a schema-managed artifact space.All reactions