@grifhinz/logics-manager 2.5.2 → 2.7.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/VERSION +1 -1
- package/clients/shared-web/media/css/layout.css +6 -0
- package/clients/viewer/browser-host.js +898 -68
- package/clients/viewer/index.html +48 -22
- package/clients/viewer/viewer.css +536 -8
- package/logics_manager/assist.py +1 -0
- package/logics_manager/flow.py +6 -2
- package/logics_manager/lint.py +11 -7
- package/logics_manager/viewer.py +603 -14
- package/package.json +1 -1
- package/pyproject.toml +1 -1
package/logics_manager/lint.py
CHANGED
|
@@ -15,18 +15,19 @@ from .config import find_repo_root
|
|
|
15
15
|
@dataclass(frozen=True)
|
|
16
16
|
class Kind:
|
|
17
17
|
directory: str
|
|
18
|
-
|
|
18
|
+
prefixes: tuple[str, ...]
|
|
19
19
|
requires_progress: bool
|
|
20
20
|
required_indicators: tuple[str, ...]
|
|
21
21
|
allowed_statuses: tuple[str, ...]
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
KINDS = {
|
|
25
|
-
"request": Kind("logics/request", "req", False, ("From version", "Understanding", "Confidence"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
|
|
26
|
-
"backlog": Kind("logics/backlog", "item", True, ("From version", "Understanding", "Confidence", "Progress"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
|
|
27
|
-
"task": Kind("logics/tasks", "task", True, ("From version", "Understanding", "Confidence", "Progress"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
|
|
28
|
-
"product": Kind("logics/product", "prod", False, ("Date", "Status", "Related request", "Related backlog", "Related task", "Related architecture", "Reminder"), ("Draft", "Proposed", "Active", "Accepted", "Validated", "Rejected", "Superseded", "Settled", "Archived")),
|
|
29
|
-
"architecture": Kind("logics/architecture", "adr", False, ("Date", "Status", "Drivers", "Related request", "Related backlog", "Related task", "Reminder"), ("Draft", "Proposed", "Accepted", "Validated", "Rejected", "Superseded", "Settled", "Archived")),
|
|
25
|
+
"request": Kind("logics/request", ("req",), False, ("From version", "Understanding", "Confidence"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
|
|
26
|
+
"backlog": Kind("logics/backlog", ("item",), True, ("From version", "Understanding", "Confidence", "Progress"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
|
|
27
|
+
"task": Kind("logics/tasks", ("task",), True, ("From version", "Understanding", "Confidence", "Progress"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
|
|
28
|
+
"product": Kind("logics/product", ("prod",), False, ("Date", "Status", "Related request", "Related backlog", "Related task", "Related architecture", "Reminder"), ("Draft", "Proposed", "Active", "Accepted", "Validated", "Rejected", "Superseded", "Settled", "Archived")),
|
|
29
|
+
"architecture": Kind("logics/architecture", ("adr",), False, ("Date", "Status", "Drivers", "Related request", "Related backlog", "Related task", "Reminder"), ("Draft", "Proposed", "Accepted", "Validated", "Rejected", "Superseded", "Settled", "Archived")),
|
|
30
|
+
"spec": Kind("logics/specs", ("spec", "req"), False, ("From version", "Status", "Understanding", "Confidence"), ("Draft", "Ready", "In progress", "Done", "Validated", "Settled", "Archived")),
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
WORKFLOW_KINDS = {"request", "backlog", "task"}
|
|
@@ -503,7 +504,8 @@ def _lint_file(path: Path, kind_name: str, kind: Kind, require_status: bool, che
|
|
|
503
504
|
issues: list[str] = []
|
|
504
505
|
warnings: list[str] = []
|
|
505
506
|
name = path.name
|
|
506
|
-
|
|
507
|
+
allowed_prefixes = "|".join(re.escape(prefix) for prefix in kind.prefixes)
|
|
508
|
+
if not re.match(rf"^({allowed_prefixes})_\d{{3}}_[a-z0-9_]+\.md$", name):
|
|
507
509
|
issues.append(f"bad filename: {name}")
|
|
508
510
|
|
|
509
511
|
lines = _read_lines(path)
|
|
@@ -557,6 +559,8 @@ def lint_payload(repo_root: Path, *, require_status: bool = False) -> dict[str,
|
|
|
557
559
|
if not directory.is_dir():
|
|
558
560
|
continue
|
|
559
561
|
for path in sorted(directory.glob("*.md")):
|
|
562
|
+
if path.name == "README.md":
|
|
563
|
+
continue
|
|
560
564
|
rel_path = path.relative_to(repo_root)
|
|
561
565
|
issues, warnings = _lint_file(
|
|
562
566
|
path,
|