MCPcopy
hub / github.com/github/awesome-copilot / check_use_cases

Function check_use_cases

skills/quality-playbook/quality_gate.py:1238–1269  ·  view source on GitHub ↗

Use case identifier section (benchmarks 43, 48).

(repo_dir, q, strictness)

Source from the content-addressed store, hash-verified

1236
1237
1238def check_use_cases(repo_dir, q, strictness):
1239 """Use case identifier section (benchmarks 43, 48)."""
1240 print("[Use Cases]")
1241 req_md = q / "REQUIREMENTS.md"
1242 if not req_md.is_file():
1243 fail("REQUIREMENTS.md missing")
1244 return
1245
1246 try:
1247 req_content = req_md.read_text(encoding="utf-8", errors="replace")
1248 except OSError:
1249 req_content = ""
1250
1251 # uc_ids: count of lines matching UC-N (bash grep -cE counts lines)
1252 uc_ids = sum(1 for ln in req_content.splitlines()
1253 if re.search(r"UC-[0-9]+", ln))
1254 uc_unique = len(set(re.findall(r"UC-[0-9]+", req_content)))
1255
1256 src_count = count_source_files(repo_dir) if repo_dir.is_dir() else 0
1257 min_uc = 3 if src_count < 5 else 5
1258
1259 if uc_unique >= min_uc:
1260 pass_(f"Found {uc_unique} distinct UC identifiers ({uc_ids} total references, {src_count} source files)")
1261 elif uc_unique > 0:
1262 connector = "for" if strictness == "general" else "required for"
1263 msg = f"Only {uc_unique} distinct UC identifiers (minimum {min_uc} {connector} {src_count} source files)"
1264 if strictness == "general":
1265 warn(msg)
1266 else:
1267 fail(msg)
1268 else:
1269 fail("No canonical UC-NN identifiers in REQUIREMENTS.md")
1270
1271
1272def check_test_file_extension(repo_dir, q):

Callers 1

check_repoFunction · 0.85

Calls 5

failFunction · 0.85
count_source_filesFunction · 0.85
pass_Function · 0.85
searchMethod · 0.80
warnFunction · 0.70

Tested by

no test coverage detected