create-filegrc 0.16.3 → 0.16.4

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.16.3",
3
+ "version": "0.16.4",
4
4
  "description": "Create a filegrc workspace for a SOC 2 program",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/index.js CHANGED
@@ -446,7 +446,6 @@ The generated workspace starts with foundational program records:
446
446
  - A default 5x5 risk method and Public, Internal, Confidential, and Restricted data classifications
447
447
 
448
448
  This profile does not include framework requirements, policies, governed documents, training, controls, obligations, or audit-management templates. Add and review those records for the selected framework before treating Program Readiness or Audit Readiness as meaningful. Do not infer that an absent control, policy, or schedule is unnecessary.`,
449
- audit_preparation_guidance: "The foundation profile does not include the local SOC 2 management-document templates used by `prepare-audit`. Add reviewed templates and program scope before initializing audit work. Audit preparation must not invent missing policy, control, or evidence facts.",
450
449
  starter_setup: `## Start the program
451
450
 
452
451
  This foundation profile contains the workspace, initial owner, core Appointments, oversight team, renderer settings, and filegrc system of record. It does not select a framework or create proposed policies, controls, obligations, or evidence.
@@ -479,7 +478,6 @@ The generated workspace starts with the SOC 2 Security category:
479
478
  Treat every planned Control as a proposal until its owner, actual procedure in Record Markdown, System scope, cadence, authoritative evidence sources, implementation date, and mappings match actual practice. FileGRC does not infer implementation from Policy prose. Enable the applicable Work Queue schedules during implementation; they remain dormant until the Policy is active and effective. Add Availability, Processing Integrity, Confidentiality, Privacy, employment, anti-bribery, or other broader GRC records only when the company chooses to expand the scope.
480
479
 
481
480
  The recurring Obligations contain reviewable starter defaults. They remain proposed until the company confirms their scope, owner, cadence, and proof. Enabling a schedule accepts those operational facts but does not start occurrences until the Information Security Policy is active and effective. Create separate completion records, such as meetings, reviews, scans, tests, exercises, and attestations, for each period.`,
482
- audit_preparation_guidance: "Preparation creates a separate system description, management assertion, and management representation document for the engagement from the local starter templates. Type 2 preparation also creates a period completeness statement and one `audit-population` record for each standard population. It is safe to run again and does not approve documents, mark controls implemented, or create evidence. Do not reuse one completed management document across engagements.",
483
481
  starter_setup: `## Finish initial setup
484
482
 
485
483
  The starter Policy, Controls, plan, schedule, training, and Obligations are proposals. They do not state that ${companyName} operates the described Controls.
@@ -523,13 +521,13 @@ async function runCombinedSetup(target, input) {
523
521
  async function writeMinimalLockfile(target, name, versionRange) {
524
522
  const lock = {
525
523
  name,
526
- version: "0.16.3",
524
+ version: "0.16.4",
527
525
  lockfileVersion: 3,
528
526
  requires: true,
529
527
  packages: {
530
528
  "": {
531
529
  name,
532
- version: "0.16.3",
530
+ version: "0.16.4",
533
531
  dependencies: { filegrc: versionRange }
534
532
  }
535
533
  }
@@ -111,13 +111,7 @@ This repository is not a native OSCAL document. Keep using the installed FileGRC
111
111
 
112
112
  Use standards terms only when their meanings match. Do not call a general program change a Profile or tailoring operation unless it selects or modifies control requirements. Do not put every adjustable policy value into a generic parameter object. Keep retention periods in the approved retention schedule, recurring cadences in Obligations, recovery objectives on Systems or Components, and other decisions in their model-defined records. Organization-specific decisions remain authoritative when starter or policy-library content changes.
113
113
 
114
- If the installed CLI reports that this workspace uses an unsupported model, start with:
115
-
116
- ```sh
117
- npx filegrc migrate --to-model 8 --preview --json
118
- ```
119
-
120
- Older workspaces migrate one version at a time. Review every preview’s automatic, review-required, and unsupported classifications before applying it with the same options and `--yes`. The v8 migration preserves legacy retention prose as notes, renames Component processing operations, and creates no retention periods or disposition behavior.
114
+ If the installed CLI reports that this workspace uses an unsupported model, run the exact `migrate --to-model ... --preview --json` command in its error. Review the preview’s automatic, review-required, and unsupported classifications before applying that version with `--yes`. Repeat one version at a time until the workspace reaches the installed model version.
121
115
 
122
116
  After changing the installed `filegrc` version, run `npm ci` and validate the workspace. FileGRC rejects CLI, server, and write operations when the installed version differs from `package-lock.json`. Older calculated revision bindings remain valid when the reviewed facts have not changed; do not repeat a management review solely because the engine changed.
123
117
 
@@ -166,44 +160,7 @@ Review all criteria against the actual service boundary in one explicit batch. R
166
160
 
167
161
  ## Work Queue and Policy Events
168
162
 
169
- Run the same obligation planner used by the web app:
170
-
171
- ```sh
172
- npx filegrc obligations --json
173
- npx filegrc obligations --from 2026-01-01 --through 2026-12-31 --complete --json
174
- ```
175
-
176
- Work Queue includes recurring obligations, Policy Event tasks, and every other open Action Item. Create an Action Item only when follow-up from a Finding, Risk, Incident, review, test, meeting, Exception, or request needs its own assignee, deadline, and completion proof. Point `sourceResourceId` to the record that produced the task. Use that source record’s Markdown for the report and observations.
177
-
178
- A calendar obligation’s recurrence anchor starts its first allowed cycle. Unless `window` narrows that range, completion is allowed from the cycle start through the day before the next cycle, and the item becomes overdue on the next cycle’s first day. Use **Record work** in Work Queue, or create and link a completion atomically with:
179
-
180
- ```sh
181
- npx filegrc complete obligation-id --scaffold --window-start YYYY-MM-DD --completed-on YYYY-MM-DD > completion-record.json
182
- # Fill the actual work, evidence, review, and any null or empty required values.
183
- npx filegrc complete obligation-id completion-record.json
184
- ```
185
-
186
- The scaffold includes the current obligation revision, so the second command rejects a stale Work Queue write. Keep prior completion links because the planner matches each dated record to its own period.
187
-
188
- Event obligations are templates. Do not mark a template complete or replace it for each occurrence. Use Trigger Work on Step 4 or run:
189
-
190
- ```sh
191
- npx filegrc trigger person-started --occurred-on 2026-07-25 --subject person-new-worker --json
192
- npx filegrc trigger person-ended --occurred-at 2026-07-25T16:30:00-05:00 --subject person-departing-worker --json
193
- ```
194
-
195
- Run `npx filegrc obligations` first to preview every task, owner, deadline, and requested proof for each available Policy Event. The trigger command creates one `obligation-event` and adds its full set of Action Items to the Work Queue in a single validated write. Its success output names the event, task count, task IDs, and deadlines. Hour-based deadlines require an RFC 3339 event timestamp so an immediate or 24-hour cutoff is exact. Day-based deadlines use the event’s calendar date. Link the requested completion resources and evidence to each action item, then mark the actions done and the event complete. Every generated action has a cutoff. filegrc applies a 30-day deadline when a custom event obligation omits one.
196
-
197
- Complete an event action and link its new proof in one validated write:
198
-
199
- ```sh
200
- npx filegrc complete-action action-item-id --scaffold --completed-on 2026-07-25 > completion-record.json
201
- # Fill the actual work, evidence, review, and any null or empty required values.
202
- npx filegrc complete-action action-item-id completion-record.json --completed-on 2026-07-25
203
- npx filegrc complete-event obligation-event-id --completed-on 2026-07-25 --expected-revision REVISION
204
- ```
205
-
206
- Completion scaffolds include the target revision. For other updates, read `REVISION` from `npx filegrc get RESOURCE_ID --mutation`. filegrc rejects a completion resource whose type does not match the obligation. It will close the event only after every action has its requested proof.
163
+ 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.
207
164
 
208
165
  ## Headless Markdown
209
166
 
@@ -218,79 +175,13 @@ Run `filegrc guide <type>` to get slot names. Policies use `content`, meetings u
218
175
 
219
176
  ## Program readiness and the candidate period
220
177
 
221
- Prepare the management program before creating an audit engagement:
222
-
223
- ```sh
224
- npx filegrc program-readiness
225
- npx filegrc program-readiness --require-ready --summary --json
226
- ```
227
-
228
- The Evidence Ready gate requires:
178
+ Run `npx filegrc program-readiness --json` to see the current Step 3 work. Follow each Control’s specific next steps and use `data/AGENTS.md` for record changes. When the Control, source, Obligation, and governed-content work is ready, record the Control collection review and activate the approved program content. The output is an Evidence Ready program with implemented Controls and repeatable evidence sources.
229
179
 
230
- 1. A management goal, selected systems, criteria, and controls.
231
- 2. Policies, required program Documents, and Training independently approved in Step 2, with approval dates and exact approved content revisions.
232
- 3. Implemented Controls with an owner, actual procedure, scope, operation pattern, mappings, implementation date, and every required linked Obligation enabled. Review the implemented Control collection once as a batch, then activate required program content at cutover.
233
- 4. Every selected Control mapped to active authoritative Components with the required evidence source roles, current access owners, and repeatable extraction instructions in Record Markdown.
234
- 5. Required governed content active and effective, with no unresolved activation blockers. Audit Documents remain in Step 5 and do not satisfy this program gate.
235
-
236
- A Policy says what the company commits to do by the date it takes effect. Approval means the company accepts those commitments. It does not prove the work is done. Controls and operating records describe how the company meets them and provide the proof. A Control may be implemented against an approved inactive Policy, required program Document, or Training record. Enabled Obligations remain dormant until all of their governing content is active and effective.
237
-
238
- Review the five Step 3 work areas in Program Readiness. Approve Policies, program Documents, and Training in Step 2. Define schedules as Obligations and implement the linked Controls in Step 3. When those work areas are ready, record one independent Control collection review, then activate unchanged approved program content. Evidence Readiness remains incomplete until that review is current and every required program artifact is active and operating. Operate and collect Evidence in Step 4. Keep engagement terms, management assertions, representation letters, and other Audit Documents in Step 5. Approve and activate each Audit Document there as separate writes after its engagement facts are complete.
239
-
240
- Onboarding does not create Evidence Artifacts. Complete authoritative source Components as part of Control implementation. For every incomplete family in Program Readiness, update the Control with its authoritative `evidenceSourceComponentIds`, then give each source Component the required evidence role, current access owners, and repeatable retrieval instructions in Record Markdown. Use `npx filegrc evidence-map --json` when you want only those source checks. During Step 4, create an Evidence Artifact only when a real artifact exists. Select its `sourceComponentId`, attach or reference the result, link the Controls and operating record it supports, record its collector and Classification, then have another person verify it before audit use.
241
-
242
- When the gate passes, set `workspace.candidatePeriodStart` to the date reliable evidence collection begins. Do not backdate it. `candidatePeriodStart` and `candidatePeriodEnd` express management’s target. They do not establish the final report period.
243
-
244
- Maintain risk assessments and the risk register while the program operates. Complete assessments on schedule and after material changes, and add or update controls when the conclusions require a different response. Audit preparation still checks for a current, independently reviewed assessment.
245
-
246
- Record complementary customer or subservice controls after the internal control set is defined. `complementary-control.relatedControlIds` is the source of truth for those links. filegrc derives the reverse connections for Control pages and evidence packets.
180
+ After Evidence Ready passes, set the Program’s `candidateCoverage` to management’s target: `{ "kind": "as-of", "on": "YYYY-MM-DD" }` for Type 1 or `{ "kind": "range", "startsOn": "YYYY-MM-DD", "endsOn": "YYYY-MM-DD" }` for Type 2. Use the real start of reliable evidence collection for a Type 2 range. The candidate target does not set the CPA firm’s report date or period.
247
181
 
248
182
  ## Audit preparation and evidence packets
249
183
 
250
- After engaging a CPA firm, create one audit record and set the firm-agreed Type 1 date or Type 2 period. Then initialize the engagement-specific management work:
251
-
252
- ```sh
253
- npx filegrc prepare-audit audit-2026-type-2
254
- npx filegrc audit-readiness audit-2026-type-2
255
- npx filegrc audit-readiness audit-2026-type-2 --require-ready --json
256
- ```
257
-
258
- The audit record’s `coverage` object stores the dates agreed with the CPA firm. Use `{ "kind": "as-of", "on": "YYYY-MM-DD" }` for Type 1 or `{ "kind": "range", "startsOn": "YYYY-MM-DD", "endsOn": "YYYY-MM-DD" }` for Type 2. Keep the Program candidate coverage even when the formal date or period differs.
259
-
260
- After reviewing the engagement's Program, Systems, criteria, Controls, commitments, subservices, complementary controls, and signatories, record the reviewed Git commit in `scopeRevision`. Update that value only after another complete scope review.
261
-
262
- Select a framework containing the complete CC1.1 through CC9.2 Security Common Criteria set, all nine SOC 2 Description Criteria, and any optional Trust Services Categories in scope. Treat every Security Common Criterion as applicable and include Controls that cover every applicable selected Trust Services criterion. For an included optional category, keep a criterion in the framework when management judges it not relevant and record the limited circumstances under DC8. Do not omit a Description Criterion. Record whether subservice organizations are identified in `subserviceConclusion` and explain the decision. If they are identified, use `subserviceTreatments` to connect each Vendor to its supplied Components inside a selected System and record the carve-out or inclusive method and rationale. An inclusive treatment also requires selected Controls linked to those Components.
263
-
264
- {{audit_preparation_guidance}}
265
-
266
- Review both evidence paths against the exact firm-agreed date or period:
267
-
268
- 1. filegrc Evidence consists of dated Step 4 operating records. Complete each applicable record, link it to the Controls it supports, record the result in structured fields or Markdown, and link any external artifact needed to support that result.
269
- 2. Evidence Artifacts are verified `evidence` records from authoritative Components. Confirm the source Component, audit date or period, Control links, collector, verifier, and fixed attachment or approved external reference.
270
-
271
- Audit Readiness reports coverage for both paths. The packet includes the matching filegrc records and Markdown with Git history, plus Evidence Artifacts, retained attachments, delivery indexes, and checksums.
272
-
273
- Near the end of fieldwork, link a verified fixed-format copy of the signed management representation letter to its engagement-specific document. Record the actual signing timestamp in the Evidence `businessEventAt` field. It must be on or after the Type 1 date or Type 2 period end and must match the CPA report date once `reportDate` is known. A representation that is still marked for later blocks packet delivery.
274
-
275
- When the CPA firm issues the report, retain it as verified `third-party-report` Evidence with `artifactSubtype: "soc2-report"` and link that exact Evidence record through `reportEvidenceId`. A draft, screenshot, unrelated business record, or unverified file does not establish report issuance.
276
-
277
- Catalog each authoritative source as a Component and assign its `evidenceSourceKinds`. A third-party application is a Component when it supports a bounded System, a Control, Evidence, or relevant operations. Create a separate Vendor for its provider and connect the Component through `vendorId`; keep contracts, due diligence, and supplier risk on the Vendor. Name the people who can access reports and keep extraction instructions in the Component's Record Markdown. For each Type 2 population, select one source Component and export the exact audit period. Split a population when different Components or queries produce its items. Link a verified `population-export` Evidence Artifact that names the same source Component and stores the query or report parameters, generation time, timezone, count, completeness check, and accuracy check. A zero count still requires the source export and query. A population linked to an in-scope Control cannot be marked not applicable.
278
-
279
- Every Evidence Artifact names its collector. Verified Evidence Artifacts also name their verifier and verification date. Use `sourceComponentId` for source exports, `sourceResourceIds` for FileGRC records, and `sourceCommit` to bind the Evidence Artifact to repository state.
280
-
281
- Preview coverage before writing output:
282
-
283
- ```sh
284
- npx filegrc evidence-packet --audit audit-2026-type-2 --preview --json
285
- npx filegrc evidence-packet --audit audit-2026-type-2
286
- npx filegrc evidence-packet --audit audit-2026-type-2 --preview --require-ready
287
- ```
288
-
289
- The packet includes records explicitly related to the selected engagement, its bounded Systems, Controls, criteria, policies, Evidence, and dependencies. It does not include unrelated dated records from the workspace. A Type 2 packet adds filegrc Evidence, recurring obligation occurrences, event workflows, and management population reconciliations. Output includes a control matrix with separate filegrc Evidence and Evidence Artifact columns, source-Component index, Evidence Artifact delivery index, population index, evidence index, committed historical source versions, and SHA-256 checksums. Output under `.filegrc/evidence-packets/` is derived and must not be hand-edited or committed.
290
-
291
- Treat a packet as ready for management delivery only when its status is `delivery-ready`, its review list is clear, and its manifest names a clean Git revision. This means filegrc's management checks passed. It does not mean the engagement team found the evidence sufficient or appropriate. The generator copies raw records, Markdown, and local fixed attachments. It never fetches external references. Reconcile `external-evidence-index.csv` to the auditor portal or other approved delivery system before telling the engagement team that submission is complete.
292
-
293
- Link a control test to its `audit-population` record when sampling applies. Link item-level sample evidence separately. Management owns population completeness and accuracy. The auditor owns sample selection, independent testing, exception evaluation, and the report opinion. The auditor or publisher also supplies the authoritative criteria and examination guidance. filegrc stores references and orientation text, not licensed criteria.
184
+ After engaging a CPA firm, create an Audit with the firm-agreed type, scope, and date or period. Run `npx filegrc audit-readiness AUDIT_ID --json` for the engagement’s current work, then `npx filegrc evidence-packet --audit AUDIT_ID --preview --json` to check the proposed packet. Use `data/AGENTS.md` and `npx filegrc guide audit --json` for the record workflow. The output is a reviewed engagement record and, once the management checks pass, a packet bound to a clean Git revision. The engagement team judges whether the evidence is sufficient.
294
185
 
295
186
  ## Content and approvals
296
187
 
@@ -180,7 +180,8 @@ The Control stage reports Control implementation items, evidence-family source c
180
180
  4. Add the Component ID to `evidenceSourceComponentIds` on every Control in the family that it supports.
181
181
  5. Finish the Control’s owner, procedure, scope, operation pattern, mappings, and implementation date. Put every calendar or event schedule in an Obligation.
182
182
  6. Enable each required Obligation. It stays dormant while a governing Policy or required program Document is inactive. The first operating window starts from the latest applicable effective date, so FileGRC does not create overdue work for a period before cutover.
183
- 7. Run `program-readiness --json`, then use `activate-policies --scaffold` to review and atomically activate the selected approved Policies at implementation cutover. A documented gap or approved Exception may support activation, but the candidate period cannot start until Policies are active and Controls are fully implemented and evidence-ready.
183
+ 7. Run `program-readiness --json`. When the Control, Evidence Sources, and Obligation work areas are ready, use `review-collection control --scaffold` to record one independent review of the implemented Controls.
184
+ 8. Use `activate-content --scaffold` to activate the unchanged approved program Documents and Training. Then use `activate-policies --scaffold` to activate the selected approved Policies at cutover. Check `program-readiness --json` again; a candidate period can start only after Evidence Ready passes.
184
185
 
185
186
  Use `get RESOURCE_ID --mutation` and `update` so JSON and Markdown change together. `evidence-map --json` remains available when you want only the evidence-family checks. Do not create an Evidence Artifact while designing or implementing a Control. Create one during Step 4 only when the real export, report, screenshot, signed file, or approved external reference exists.
186
187
 
@@ -15,4 +15,4 @@ Complete each action with the requested resource type and proof. Then close the
15
15
  npx filegrc complete-event OBLIGATION_EVENT_ID --completed-on YYYY-MM-DD --expected-revision REVISION
16
16
  ```
17
17
 
18
- Read `REVISION` from `npx filegrc get OBLIGATION_EVENT_ID --mutation`. filegrc refuses to close an event with unfinished or unproved actions. Cancel an event only when the triggering event itself was entered in error or did not occur; explain the reason in related records or the commit message.
18
+ Read `REVISION` from `npx filegrc get OBLIGATION_EVENT_ID --mutation`. filegrc refuses to close an event with unfinished or unproved actions. If the triggering event was entered in error or did not occur, get the event with `--mutation`, set its status to `canceled`, and fill `cancellation.canceledByIds`, `cancellation.canceledOn`, and `cancellation.reason` on that event. Cancel its open Action Items with their own cancellation actor, date, and reason, then run `npx filegrc obligations --json` to confirm no tasks remain open for that event.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "{{project_name}}",
3
- "version": "0.16.3",
3
+ "version": "0.16.4",
4
4
  "private": true,
5
5
  "description": "filegrc workspace for a SOC 2 program",
6
6
  "type": "module",
@@ -78,10 +78,6 @@
78
78
  {
79
79
  "key": "starter_baseline",
80
80
  "source": "starter-profile"
81
- },
82
- {
83
- "key": "audit_preparation_guidance",
84
- "source": "starter-profile"
85
81
  }
86
82
  ]
87
83
  }