create-filegrc 0.20.8 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-filegrc",
3
- "version": "0.20.8",
3
+ "version": "0.21.0",
4
4
  "description": "Create a filegrc workspace for a SOC 2 program",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/defaults.js CHANGED
@@ -1136,7 +1136,7 @@ export function baselineRecordFiles(effectiveDate, starter = "security") {
1136
1136
  ? { ...obligation.recurrence, anchorDate: effectiveDate }
1137
1137
  : obligation.recurrence,
1138
1138
  ...(obligation.window ? { window: obligation.window } : {}),
1139
- ...(starterObligationSelector(obligation.id) ? { selector: starterObligationSelector(obligation.id) } : {}),
1139
+ ...(starterObligationSelector(obligation.id) ? { selector: starterObligationSelector(obligation.id), completionCoverage: "point-in-time" } : {}),
1140
1140
  ...(obligation.id === "obligation-annual-penetration-test" ? { preparationPurpose: "applicability-review" }
1141
1141
  : ["backup-test", "exercise", "penetration-test", "vulnerability-scan", "security-scan", "alert-path-test"].includes(obligation.activityType) ? { preparationPurpose: "test-execution" } : {}),
1142
1142
  rationale: starterObligationRationale(obligation.id),
@@ -1221,7 +1221,7 @@ function starterObligationSelector(obligationId) {
1221
1221
  return definition ? {
1222
1222
  ...definition,
1223
1223
  membershipMode: "as-of",
1224
- cutoff: "window-end"
1224
+ cutoff: obligationId === "obligation-annual-critical-vendor-review" ? "window-end" : "review-date"
1225
1225
  } : null;
1226
1226
  }
1227
1227
 
package/src/index.js CHANGED
@@ -524,13 +524,13 @@ async function runCombinedSetup(target, input) {
524
524
  async function writeMinimalLockfile(target, name, versionRange) {
525
525
  const lock = {
526
526
  name,
527
- version: "0.20.8",
527
+ version: "0.21.0",
528
528
  lockfileVersion: 3,
529
529
  requires: true,
530
530
  packages: {
531
531
  "": {
532
532
  name,
533
- version: "0.20.8",
533
+ version: "0.21.0",
534
534
  dependencies: { filegrc: versionRange }
535
535
  }
536
536
  }
@@ -188,6 +188,8 @@ Program records, owners, Person email addresses, and dates remain authoritative
188
188
 
189
189
  Run `npx filegrc obligations --json` to see scheduled work, event tasks, owners, deadlines, and requested proof. In Step 4, record the work shown there. Use `npx filegrc guide obligation --json` and `data/AGENTS.md` for the completion and event-trigger commands. The resulting dated operating record or completed Action Item is the output.
190
190
 
191
+ A periodic review or test may inspect a point in time without claiming continuous coverage. Read [Obligation population timing](https://github.com/Alignbase/filegrc/blob/main/docs/obligation-population-timing.md) before choosing `completionCoverage` and selector cutoff. A `review-date` snapshot requires the actual `--population-as-of` observation date and committed scope. A `whole-period` duty requires explicit proof range coverage after the recurrence period ends. Preserve existing end-cutoff campaigns and unfinished members. Waiting means current member work is recorded but the population is still open; final reconciliation remains required. Use `npx filegrc correct-obligation-rule RULE_ID --scaffold --json` for a reviewed successor correcting an inappropriate open snapshot rule, preserving the original window, proofs and approvals. Upgrade local and hosted readers to the 0.21 line before adopting these optional model v13 fields.
192
+
191
193
  ## Headless Markdown
192
194
 
193
195
  Create and update JSON plus Markdown in one mutation envelope when practical. You can also inspect or replace a companion directly:
@@ -61,3 +61,5 @@ Your team performs the control work and reviews responses before submission. An
61
61
  For a nonmaterial administrative correction, choose **Nonmaterial amendment** on a supported record page or run `npx filegrc amend-nonmaterial RESOURCE_ID --scaffold`. The owner can correct an administrative label or a verified equivalent reporting email alias while preserving the original record and approval. Changes to commitments, recipients, access, scope, schedules, governed content or evidence conclusions keep their normal reviews.
62
62
 
63
63
  The nonmaterial amendment workflow is available from FileGRC 0.19.0 with model v13. Existing workspaces need no model migration. The 0.19 runtime also reads existing 0.18 workspaces; 0.18 runtimes reject repositories pinned to 0.19, so hosted services must approve and install the new runtime before owners adopt these records.
64
+
65
+ Periodic reviews, population cutoffs, and whole-period proof have separate meanings. See the [Obligation population timing guide](https://github.com/Alignbase/filegrc/blob/main/docs/obligation-population-timing.md) before choosing or correcting a schedule.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "{{project_name}}",
3
- "version": "0.20.8",
3
+ "version": "0.21.0",
4
4
  "private": true,
5
5
  "description": "filegrc workspace for a SOC 2 program",
6
6
  "type": "module",