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
8 changes: 5 additions & 3 deletions docs/bundles/code-review/run.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,12 @@ Use **`--focus`** with **`source`**, **`tests`**, **`docs`**, and/or **`simplify
specfact code review run --scope changed --focus tests
specfact code review run --scope full --path packages/specfact-code-review --focus source
specfact code review run --scope full --focus docs
specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json
specfact code review run --scope changed --focus simplify --with-mutation --json --out .specfact/code-review-simplify.json
specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review.json
specfact code review run --scope changed --focus simplify --with-mutation --json --out .specfact/code-review.json
```

Use the canonical `.specfact/code-review.json` path unless every consumer in your workflow has been updated to read a custom simplify report path.

### AI instructions fallback

When an IDE does not support bundled prompts or skills, print the same guided simplify workflow for an AI assistant:
Expand Down Expand Up @@ -143,7 +145,7 @@ The built-in `specfact/ai-bloat-patterns` policy pack is parallel to `specfact/c
Use `--focus simplify` when producing the IDE simplification queue:

```bash
specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json
specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review.json
```

Simplify-focused reports keep advisory `ai_bloat` findings plus high-confidence `dry` and `kiss` findings that include deterministic simplification metadata. Metadata fields such as `rewrite_hint`, `canonical_pattern`, `intent_key`, `estimated_deletion_lines`, `related_locations`, `signal_trace`, `preserve_reasons`, and `remediation_packet` are additive; legacy consumers can keep reading the original finding fields. The report-level `cleanup_forecast` summarizes reviewed LOC, estimated deletion ranges, guidance-kind totals, normalized AI-bloat density, weighted bloat points, and cleanup-yield LOC per KLOC. Simplification findings remain score-neutral; enforce mode blocks only unresolved safe-mechanical cleanup candidates.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ This change turns `specfact code review run --focus simplify` into a cleanup for

- **Affected bundle:** `packages/specfact-code-review`.
- **Affected docs:** Code Review bundle/module pages and AI bloat quickstart.
- **Affected JSON:** `.specfact/code-review-simplify.json` receives additive optional fields; existing required fields remain compatible.
- **Affected JSON:** `.specfact/code-review.json` receives additive optional fields; existing required fields remain compatible. Custom simplify report paths are allowed only when downstream consumers have been updated to read them.
- **Affected command surface:** `specfact code review run` gains `--preview-fixes` and `--with-mutation`.
- **Release impact:** `specfact-code-review` version, registry entry, and signatures must be refreshed if packaged assets or manifests change.

Expand Down
6 changes: 3 additions & 3 deletions packages/specfact-code-review/module-package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: nold-ai/specfact-code-review
version: 0.47.30
version: 0.47.32
commands:
- code
tier: official
Expand All @@ -23,5 +23,5 @@ description: Official SpecFact code review bundle package.
category: codebase
bundle_group_command: code
integrity:
checksum: sha256:3c7c6b62c2c3a7aea2f3bff95628861fa6a3612b4b3de8064cb9380dba843561
signature: +9rmzN2qzb53LMUFO+LPJMLaP7pA4QMokYvqwYEq7HNMvbogGFgQupeauqMdYxgd3xtyxUkgrELzAKyABhu3CA==
checksum: sha256:5db6e4c0c38085d678b26c14d41cb1f889d73bc698084b99c2a34ea478474322
signature: fOoHhntdIRp17kVPHMdHhv3NIVY8835TG0xJkYjJEh8sJiwD42WbHwx34xd5BDSz3uRtlF44GbPUiriboVeOBA==
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@
Use this when the user asks to remove AI bloat, simplify code, apply clean-code patterns, reduce boilerplate, or act on SpecFact review findings.

1. Generate evidence first:
specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review-simplify.json
specfact code review run --scope changed --focus simplify --preview-fixes --json --out .specfact/code-review.json

Keep the canonical .specfact/code-review.json path unless every downstream consumer has been updated to read a custom simplify report path.

If the worktree is clean on a PR branch and --scope changed finds no files, review the branch-delta Python files as explicit positional files and omit --scope. Find them with the PR base ref, for example: git diff --name-only <base-ref>...HEAD -- '*.py' '*.pyi'

Expand All @@ -51,7 +53,7 @@
5. For design_judgment findings, check API, callback, framework hook, adapter, public symbol, CLI boundary, compatibility shim, and readability intent. If intent is unclear, default to keep or skip.

6. Apply one file at a time. After each accepted file or very small batch, run targeted tests or rerun:
specfact code review run --scope changed --focus simplify --json --out .specfact/code-review-simplify.json
specfact code review run --scope changed --focus simplify --json --out .specfact/code-review.json

7. Log every action as recommended, applied, kept, skipped, or failed with evidence. Never batch-apply design_judgment findings just because the patch is shorter. Never treat ai_bloat findings as proof of AI authorship; they are cleanup signals only, not proof of AI authorship.
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,12 @@ def with_mutation_evidence(report: ReviewReport, files: list[Path]) -> ReviewRep
@require(lambda files: isinstance(files, list), "files must be a list")
@ensure(lambda result: isinstance(result, ReviewReport), "result must be a review report")
def with_refreshed_cleanup_forecast(report: ReviewReport, files: list[Path]) -> ReviewReport:
data = report.model_dump()
data["cleanup_forecast"] = build_cleanup_forecast(report.findings, files)
data["simplification_summary"] = None
return ReviewReport(**data)
return report.model_copy(
update={
"cleanup_forecast": build_cleanup_forecast(report.findings, files),
"schema_version": "1.3",
}
)


def _preview_simplification_fixes(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ class GuidanceKindForecast(BaseModel):

count: int = Field(..., ge=0)
estimated_deletion_lines: int = Field(..., ge=0)
weight: float = Field(default=0.0, ge=0.0)


class CleanupForecast(BaseModel):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def _reviewed_loc_for_files(files: list[Path]) -> ReviewedLoc:
loc = _count_python_loc(file_path)
except (OSError, UnicodeDecodeError):
continue
if "tests" in file_path.parts:
if any("test" in part.lower() for part in file_path.parts):
tests += loc
else:
production += loc
Expand All @@ -104,17 +104,21 @@ def _cleanup_forecast_totals(guided: list[ReviewFinding]) -> _CleanupForecastTot
def _add_cleanup_forecast_finding(totals: _CleanupForecastTotals, finding: ReviewFinding) -> None:
guidance_kind = finding.guidance_kind or "design_judgment"
deletion_lines = finding.estimated_deletion_lines or 0
current = totals.by_guidance_kind.get(guidance_kind, GuidanceKindForecast(count=0, estimated_deletion_lines=0))
weight = _CLEANUP_FORECAST_WEIGHTS.get(guidance_kind, 0.0)
current = totals.by_guidance_kind.get(
guidance_kind,
GuidanceKindForecast(count=0, estimated_deletion_lines=0, weight=weight),
)
totals.by_guidance_kind[guidance_kind] = GuidanceKindForecast(
count=current.count + 1,
estimated_deletion_lines=current.estimated_deletion_lines + deletion_lines,
weight=weight,
)
if finding.action_status is not None:
totals.by_action_status[finding.action_status] = totals.by_action_status.get(finding.action_status, 0) + 1
if guidance_kind == "safe_mechanical":
totals.low += deletion_lines
if guidance_kind != "preserve":
totals.high += deletion_lines
weight = _CLEANUP_FORECAST_WEIGHTS.get(guidance_kind, 0.0)
totals.expected += deletion_lines * weight
totals.weighted_points += weight
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from collections.abc import Callable, Iterable
from contextlib import suppress
from dataclasses import dataclass
from functools import partial
from functools import lru_cache, partial
from pathlib import Path
from typing import Literal, cast
from uuid import uuid4
Expand Down Expand Up @@ -427,12 +427,10 @@ def _preserve_reasons_for_finding(finding: ReviewFinding, *, load_bearing: bool)
explanation="Mutation proof indicates this code is load-bearing.",
)
)
try:
source = Path(finding.file).read_text(encoding="utf-8")
tree = ast.parse(source, filename=finding.file)
except (OSError, SyntaxError, UnicodeDecodeError):
parsed = _get_parsed_source(finding.file)
if parsed is None:
return reasons
lines = source.splitlines()
tree, lines = parsed
function_node = _function_containing_line(tree, finding.line)
class_node = _class_containing_line(tree, finding.line)
public_names = _module_all_names(tree)
Expand Down Expand Up @@ -488,6 +486,23 @@ def _preserve_reasons_for_finding(finding: ReviewFinding, *, load_bearing: bool)
return _dedupe_preserve_reasons(reasons)


def _get_parsed_source(file_path: str) -> tuple[ast.Module, list[str]] | None:
try:
source = Path(file_path).read_text(encoding="utf-8")
except (OSError, UnicodeDecodeError):
return None
return _parse_source(file_path, source)


@lru_cache(maxsize=256)
def _parse_source(file_path: str, source: str) -> tuple[ast.Module, list[str]] | None:
try:
tree = ast.parse(source, filename=file_path)
except SyntaxError:
return None
return tree, source.splitlines()


def _dedupe_preserve_reasons(reasons: list[PreserveReasonEvidence]) -> list[PreserveReasonEvidence]:
deduped: list[PreserveReasonEvidence] = []
seen: set[str] = set()
Expand Down
6 changes: 3 additions & 3 deletions registry/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,9 @@
},
{
"id": "nold-ai/specfact-code-review",
"latest_version": "0.47.30",
"download_url": "modules/specfact-code-review-0.47.30.tar.gz",
"checksum_sha256": "8e9db9d4659f6bd71d572e213a186f188e20ddfa1108838d18cfb4decca5761e",
"latest_version": "0.47.32",
"download_url": "modules/specfact-code-review-0.47.32.tar.gz",
"checksum_sha256": "ba6746be977a29e9ae29f85dc6f56e84cd68e0af8c69746fc4793cc1c544675e",
"core_compatibility": ">=0.44.0,<1.0.0",
"tier": "official",
"publisher": {
Expand Down
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.39.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a59c07672ba1fdf02d8dc03d0171d03429e521ca98d383169404127fd1d9ea13
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c180966b5488bd7185e3d58201916e9cd8e626d3eace96c542c4caaf827e72a3
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.1.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5303882e03bebd7796c56d0e32c5357f74db77853f9f101fa6e7c568ea113f9f
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.10.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2a2fc2dd4ec89faa02336b7e7510d33b8cb96766054fd3f6eae4304c6c5d6460
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.11.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ec95c9041af8a9217ec3317b1bb190c518cfd4d16d264ea8726248f3fe592463
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.13.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ad41442be4bdd883b0d2c1797692c8a8e0de82682e5675a42c57e92526960352
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.14.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4e50523ad1118ba0d18cd1134ccfe1e2824856517de773edf1f91f27677e4677
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.15.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
bdf9f0ccf3e18c05e26821ecc4cef94d9a76ecfe97554a2a0387a6c9eadc2ffa
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.2.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
07e2ed09eb7a780350513415f1ada910101592304a2440cbcceddc09b0797a14
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.3.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dab751f2993d992a2bc92cd9b9ba4c70128c5b7072098162efce3910da330ab8
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.4.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
71729cca43246ecf0ca2ecd597ac91c934ea7d3af84bccfee90207b448efc830
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.5.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2e63cf5a0385a384543da384f5cda35f76349a38b82a0f044986fe50747f7c0f
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.6.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
55e18cc73e540d335a79436842908fb0d6f32be664443a8b47fff76238b4f011
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.7.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d91040de02cf04e4392a077bcb7117a195994e5ffd45dcb94ef7e8a378a6f02c
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.8.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6640bd7c94d9193d70053fd6b390eedb12c63f8e0107987ab95b95fb36825289
1 change: 1 addition & 0 deletions registry/modules/specfact-backlog-0.40.9.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
9893e81390c8531d2b7c74ca711d652c6d9688cb88adae3467fc7f22a9a9d70a
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
407f28ae9bc776eb914a0907f64a3724ba080ca9cc781d49379cefb7f3ff1d3f
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ba6746be977a29e9ae29f85dc6f56e84cd68e0af8c69746fc4793cc1c544675e
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.39.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1f70e1470af9889c955ae848231878ad7d495a2d9c8d27719acc866bd7ffb33d
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a25a664a9c637014ab8b47d50741228cee411a8bb73e77e7ffb70500e7a99d34
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.1.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a262025d4098b4913ca694ca1ab17b25500cc3098899785209647a41002433fb
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.10.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
247787bf00522865a640945e3d7154b8722ad46b778770864601051d0700bc36
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.11.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
926d1bc91e715e450342bd0eb001a6c26a3b5359091c8404580146bdcb766652
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.12.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
093bd3f80d5abe7f969e6a130d45fe62560188c0ec7419773555a93ba13fb531
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.13.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
075f6ac03febab05c10a2a153255fc85cecaedce74b748660fd6c5db6e78214f
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.14.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1f383286507730a546ae7fd629253e7c7477fa42d84d0284c8bb72b468a212c4
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.2.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8f0e63d795737cb95bc9b9bb94393ad510a568fe5051a3389527cb20630d1a2b
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.3.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
90d6627b9cca28f528d75044e3c1110ade8b7a3bc96a2ca95bc6ee9716d8353c
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.4.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5742effa6fc0f8f23b61e762d351af5839176174c154c5f3849b34199faad71f
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.5.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0777050f23e0ee2f750a767b6b4ade142391279412b64351b708fe891f065fba
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.6.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
145ec268bebf6a560bd40b2098591205b09903d83805b740baed36f2e5a53fc9
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.7.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5a5cb5965c1c2271bb8ce44a183e9470955c5be1daf45deead8c29a2298136c7
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.8.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
36fc309889c7794bba8328324a84a777965b661d933a31472bdcb07e494d2ce8
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.40.9.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2efcfba76d5368c325995e5bbcbaf0a1d73f7b253d051697d19d460e31d0a81a
1 change: 1 addition & 0 deletions registry/modules/specfact-codebase-0.41.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
af22a5607ce46c1dfe1dc9aaba5b2ceafabdec8f924e4dad5be103600f837a02
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.39.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
00d1fb60364b5545fd44a318ca13b556e8345582e0ff9c2185df6a4a5db2a2bc
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
15fa85a158d2e7b0fd7bda2a626bb30c3e1523bc364af1d6d0506d10704be012
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.1.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a12af83810a7336572f2b95afcfa44c37467be42463d071ce49a84a14cea55cd
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.10.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8594ce61bddda858b0d4c98c4837fbde3786f97f7c43d3ff39708206f97492e0
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.11.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2b384a2d6008945441532b6c96b8c2e5ea1265bfea6630ebc16bf5a1bae6edba
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.12.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
50530b16edc7ea7f6a1b818c3c126bb2fbbdeca92e857c315bbf311314247daf
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.13.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
efbc86967cd8796c51c839f2611279ada54216c026bf7879e090926b8665d72f
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.2.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
26052f0d95fcd29a4614f15d818ad28ab678bed16919a4ca3cc8d5c712906048
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.3.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fb09d2bf687d905cc3bf53f4c85de77a7d14728c842539e0e004e9bc8b89161c
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.4.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4aaee86092079224f9ff9a1a12fb162b95ec265464a1bc8250458da92634ff0e
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.5.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c23b31234c350a5e4747beea13649041ea8946b34b537f955ba78f919b371e51
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.6.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
064153f07c3de334614d5b90212c9d39643cd9bb84e155b19a05cebb0639ea8d
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.7.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a155843e4b96073516c39fb0e72f64c8dac81977f95c2a1f91786198d1f4520a
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.8.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
814de7dff193c67bca4159ff9ada1f2900a27457943c00e4a9fcc41236d35dc9
1 change: 1 addition & 0 deletions registry/modules/specfact-govern-0.40.9.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24f5014cb8c99c5eb1127a0766e6254a9f3509205fe0c625886e43aaaf500774
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.39.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7c7daea2401ca9618676a3f1369fd14ad65e008c692ed19b442fa9fc1ea93365
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fc1dc72db983d0350d257c710f315dc1d89b5955bc1a409bb65ecb2ad4e72b66
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.1.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6ce5de74b117b2e241980eaf42c27aea50ac7ed17cf98009f3c165095a7be304
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.11.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6ad021243359379ef49e45736ac6a012e94afc61d9dccbd55572bd376b55e1c2
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.12.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d8d7d68cbc09b6822d2a61a6c4fe650076029b725a364bb5d394d449623eba07
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.13.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7c7d8b7acd577670542f7cfaded1dad9c7b18badf1aec7ef8da8bcead678df31
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.14.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
35f04dd9d804312c148d1743b2e64ed3c2d6f3a9572f94b503a9505397574d9b
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.15.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
caff2eaef50ab09cc783f06043930c925c769a36ea947e713c10af587d6b1927
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.2.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
123bb72ac14015e6b585c1f7095365a88e3580e16b41b238c559e4e1182c25ff
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.20.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
080d1133ce61ff7b7945124b9cfd7e58ddd9df76a663ea48c2bd1a2f6ea43dab
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.3.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3e19b2b0b1cedc3005265239cf30b1b42309dfdc53c213f14e0c8297a3f6c0fc
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.4.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e90bdf20c3053488f92409330f80875286db237a2c25a6a5f00f1044b8ae67cd
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.5.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
b76d6aaf7128dde79b22a22bfe7f07fe86947c9199f6ed9f7d0e8ec61d833a14
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.6.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
352c60a09916ce36c4a6d32daad79acd3809c00081ae00ad345e48440adb4092
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.7.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
daca73a59dfbd674da3dedddbdca01a4138321f26ad53066e7cb6c73afc9bfa8
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.8.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8a6a2a67cf8d26cfe0fcb3c83f91f36f800c7c480db56732057a55bc81644a72
1 change: 1 addition & 0 deletions registry/modules/specfact-project-0.40.9.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0e69a8ce6b0ff665b34dff18b77894684202ae2f60e23c85f998a8a4dbb81b84
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.39.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6be5b1ac7b3cd60b51dcb8f45ffa41be3d7f5bcd0429ab70d81b2eb3bbf8367d
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.0.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c0d9536577529ed54f09c687c2edfc5c2a078e7aeb7a4cb1e0379077e8dc7f16
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.1.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6afc7770e8c7adbcc0e5ad5747092139d12d38967cde72320d00200647af803b
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.10.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
487873085d7bca3221e96f88bdbc5564cc5529086098e422203b21bf96336ce1
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.11.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a0729d64dc8a3b3bd883d49dc69d4452b6a8fc4fc68665359b2b9b978b9befd1
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.12.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ee5e7bebe3815516c00ba8d5c8015c3512186782cd7a9a87642111aad8a1e140
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.13.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8c8004144bba37a49a7099f74f903b75819929fb0846d5e1d8dab8ffe5c97dd7
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.2.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
734baa9da1f2ea3eb92093aaaa46068b079b040101ed97f3514b95995f5e59a1
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.3.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5fba7afc3e553289f4afcb8851d460de5fc35a240d125af412b1b46f13bdcd7f
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.4.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
50c15e4b6ef9e38e41cf6a398721791e52d7769146813c8986219a39c88ef171
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.5.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cd88073eb64152d4071af925c91d84f137a69669da4022c97b5dcd59160c5d05
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.6.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
050382abf1cb7ddc172c33261f0cc6a70261c791e5af5488692af4e374f9c787
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.7.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
de0236d638d5ea5b638c3f3cdbfb87a06af0ac91299981a8f81aff9d9b972660
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.8.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
930f27a4f82a27828397343ab2f93091f1561fc31684dd3bf45331f416b62d78
1 change: 1 addition & 0 deletions registry/modules/specfact-spec-0.40.9.tar.gz.sha256
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2df922f15f812b6e8022e9019e88a5bbde3625af85564454af0d58653a7bf30a
Loading