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
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ Reqly can copy a local file into the item's `artifacts/` folder or link a relati

Create a child requirement, such as "Display the warning below 10% capacity", and relate it to `REQ-0001` with `required-by`. Reqly maintains the parent's inverse `requires` relation automatically.

Now the Requirements view shows the product requirement as a parent-first tree. The same view also places linked verifications beneath their requirements.
Now the Requirements view shows the product requirement as a parent-first tree. The same view also places linked verifications beneath their requirements. Use its search action to filter requirements and verifications by partial text; separate search terms use AND logic, and matching paths open automatically.

For purely visual organization, create a folder and use its `contains` relation to place requirements, verifications, or nested folders beneath it. Folder relations are non-normative: rearranging the tree does not change requirement fingerprints. A folder's icon color and check state are derived from the items it contains.
For purely visual organization, create a folder from the Requirements view root, or use the requirement context menu to create one and place that requirement in it immediately. Folder relations are non-normative: rearranging the tree does not change requirement fingerprints. A folder's icon color and check state are derived from the items it contains.

### 5. Add evidence

Expand Down Expand Up @@ -72,7 +72,7 @@ The verification document contains `Procedure`, `Expected Result`, and `Evidence

Later, the battery specification changes. Edit the parent requirement or its linked normative data. Reqly detects that the child or verification was based on an older dependency fingerprint and puts it in the impact queue.

Review the affected items, update the requirement or repeat the test, then acknowledge the impact. Reqly refreshes the fingerprint. The Impact Queue toolbar can acknowledge all pending fingerprint changes at once, while a requirement's context menu can acknowledge its own subtree. Draft-parent, broken-reference, and cycle warnings remain until their underlying condition is fixed.
Review the affected items, update the requirement or repeat the test, then acknowledge the impact. Reqly refreshes the fingerprint. The Impact Queue toolbar can acknowledge all pending fingerprint changes at once, while a requirement's context menu can acknowledge its own subtree. Broken-reference and cycle warnings remain in the queue until their underlying condition is fixed; draft-parent warnings remain available in diagnostics and on the requirement tree.

Selecting items in the Requirements or Impact Queue tree reuses VS Code's preview editor, preventing navigation from leaving a trail of open tabs. Reqly never stages, commits, pushes, or rewrites Git history; use your normal Git workflow to review and commit the Markdown and YAML changes.

Expand Down
2 changes: 1 addition & 1 deletion packages/vscode/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Reqly for VS Code

Reqly is delivered entirely as a VS Code extension and keeps product requirements, verification procedures, traceability, and linked product documents close to the code. Open a repository containing `.reqly/AGENTS.md` to use the parent-first requirements explorer, linked verifications, organizational folders, computed verification icons, impact queue, diagnostics, and Markdown editor assistance. Tree selections reuse VS Code's preview tab. Use a requirement's context menu to create and link a new sub-requirement or verification, and use a folder's context menu to add existing or new items through its non-normative `contains` relation. The Impact Queue toolbar acknowledges all stale fingerprints; a requirement action limits that acknowledgement to its subtree. Agent integrations are provided by the standalone `@mrpatpat/reqly-mcp` package. Removing a local artifact deletes its referenced file after confirmation. Deleting an item removes its folder and all relations to it after a separate destructive confirmation. Configuration defaults are bundled with the extension.
Reqly is delivered entirely as a VS Code extension and keeps product requirements, verification procedures, traceability, and linked product documents close to the code. Open a repository containing `.reqly/AGENTS.md` to use the parent-first requirements explorer, linked verifications, organizational folders, computed verification icons, impact queue, diagnostics, and Markdown editor assistance. Tree selections reuse VS Code's preview tab. Use the Requirements view search action to filter requirements and verifications by partial text; spaces use AND logic and matching paths are expanded automatically. Clear the search from the view toolbar. Use the Requirements view toolbar to create a root folder, or a requirement's context menu to create a folder and place that requirement in it immediately. A folder's context menu can add existing or new items through its non-normative `contains` relation. The Impact Queue toolbar acknowledges all stale fingerprints; a requirement action limits that acknowledgement to its subtree. Agent integrations are provided by the standalone `@mrpatpat/reqly-mcp` package. Removing a local artifact deletes its referenced file after confirmation. Deleting an item removes its folder and all relations to it after a separate destructive confirmation. Configuration defaults are bundled with the extension.
11 changes: 8 additions & 3 deletions packages/vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@
"commands": [
{ "command": "reqly.init", "title": "Reqly: Initialize Project" },
{ "command": "reqly.refresh", "title": "Reqly: Refresh" },
{ "command": "reqly.search", "title": "Reqly: Search Requirements", "icon": "$(search)" },
{ "command": "reqly.clearSearch", "title": "Reqly: Clear Search", "icon": "$(clear-all)" },
{ "command": "reqly.newRequirement", "title": "Reqly: New Requirement" },
{ "command": "reqly.newFolder", "title": "Reqly: New Folder", "icon": "$(new-folder)" },
{ "command": "reqly.addFolderItem", "title": "Reqly: Add Item to Folder" },
Expand All @@ -74,16 +76,19 @@
],
"menus": {
"view/title": [
{ "command": "reqly.search", "when": "view == reqly.requirements", "group": "navigation" },
{ "command": "reqly.clearSearch", "when": "view == reqly.requirements && reqly.searchActive", "group": "navigation" },
{ "command": "reqly.newRequirement", "when": "view == reqly.requirements", "group": "navigation" },
{ "command": "reqly.newFolder", "when": "view == reqly.requirements", "group": "navigation" },
{ "command": "reqly.newVerification", "when": "view == reqly.requirements", "group": "navigation" },
{ "command": "reqly.acknowledgeAllImpacts", "when": "view == reqly.impacts", "group": "navigation" },
{ "command": "reqly.refresh", "when": "view =~ /reqly\\./", "group": "navigation" }
],
"view/item/context": [
{ "command": "reqly.newSubRequirement", "when": "viewItem == reqlyRequirement", "group": "reqly@1" },
{ "command": "reqly.newVerification", "when": "viewItem == reqlyRequirement", "group": "reqly@2" },
{ "command": "reqly.acknowledgeSubtreeImpacts", "when": "viewItem == reqlyRequirement", "group": "reqly@3" },
{ "command": "reqly.newFolder", "when": "viewItem == reqlyRequirement", "group": "reqly@1" },
{ "command": "reqly.newSubRequirement", "when": "viewItem == reqlyRequirement", "group": "reqly@2" },
{ "command": "reqly.newVerification", "when": "viewItem == reqlyRequirement", "group": "reqly@3" },
{ "command": "reqly.acknowledgeSubtreeImpacts", "when": "viewItem == reqlyRequirement", "group": "reqly@4" },
{ "command": "reqly.addFolderItem", "when": "viewItem == reqlyFolder", "group": "reqly@1" },
{ "command": "reqly.previewItem", "when": "viewItem =~ /reqly(Folder|Item|Requirement)/", "group": "inline" },
{ "command": "reqly.setStatus", "when": "viewItem =~ /reqly(Item|Requirement)/", "group": "reqly" },
Expand Down
Loading