Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 11743,
"has_wiki": true,
"homepage": "http://productbuildershq.com/visionspec/",
"languages": {
"Go": 1519470,
"Makefile": 1196
},
"pushed_at": "2026-07-20T10:43:49Z",
"created_at": "2026-05-23T14:20:39Z",
"owner_type": "Organization",
"updated_at": "2026-07-20T10:40:44Z",
"description": "Multi-domain specification orchestration for humans and AI agents. MultiSpec bridges the gap between organizational intent (MRD, PRD, UXD) and executable specifications for AI coding agents.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": "https://productbuildershq.com",
"name": "ProductBuildersHQ",
"type": "Organization",
"login": "ProductBuildersHQ",
"company": null,
"location": null,
"followers": 0,
"avatar_url": "https://avatars.githubusercontent.com/u/258703354?v=4",
"created_at": "2026-02-02T00:56:12Z",
"is_verified": null,
"public_repos": 9,
"account_age_days": 172
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.14.0",
"kind": "minor",
"published_at": "2026-07-20T10:43:50Z"
},
{
"tag": "v0.13.0",
"kind": "minor",
"published_at": "2026-07-18T20:18:18Z"
},
{
"tag": "v0.12.0",
"kind": "minor",
"published_at": "2026-07-06T14:25:22Z"
},
{
"tag": "v0.11.0",
"kind": "minor",
"published_at": "2026-07-06T13:06:32Z"
},
{
"tag": "v0.10.0",
"kind": "minor",
"published_at": "2026-06-13T18:53:55Z"
},
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2026-06-08T09:27:37Z"
},
{
"tag": "v0.8.0",
"kind": "minor",
"published_at": "2026-06-07T18:22:38Z"
},
{
"tag": "v0.7.0",
"kind": "minor",
"published_at": "2026-06-01T14:41:07Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2026-06-01T09:01:30Z"
},
{
"tag": "v0.5.0",
"kind": "minor",
"published_at": "2026-05-26T13:11:26Z"
},
{
"tag": "v0.4.0",
"kind": "minor",
"published_at": "2026-05-25T13:37:07Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2026-05-24T23:50:28Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2026-05-24T16:10:22Z"
},
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2026-05-24T13:51:14Z"
}
],
"recent_commits": [
{
"oid": "295661bd0d0a5d55c823e64ccf20433e1f7375e1",
"body": "Fold the project rubrics config feature (custom rubric files + pass-criteria\npolicy across all evaluation paths) into the v0.14.0 release: add highlights,\nAdded entries, and a \"Project Rubrics Config\" section. Regenerate CHANGELOG.md.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: include RubricsConfig in the v0.14.0 release notes and changelog",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T10:38:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f3e675daaf0cd4c3e9973134e8e7f0ed22aa255f",
"body": "Note the overrides -> directory -> profile resolution order, project-relative\npath handling, and that strict_mode / max_* apply across all evaluation paths.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(config): document rubrics config resolution and effect",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T10:32:29Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f99db827573d2c1d117955f594f18b4f8cc70e94",
"body": "Wire visionspec.yaml `rubrics` config into evaluation via\nEvaluator.ApplyProjectRubrics: custom rubric files (overrides then directory,\nresolved against the project) are chained ahead of the base loader, strict mode\nrequires every category to reach Acceptable, and configured max_* limits\noverride th\n[…]\ns — `eval`, `synthesize --eval`, and the MCP run_eval / eval_draft tools —\nso the previously-inert RubricsConfig now takes effect.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(eval): apply the project rubrics config across evaluation paths",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T10:32:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3263e15eda34f187b9eae03b2f35368dae59a3f8",
"body": "Add a loader that maps spec types to specific rubric file paths, for a project's\nvisionspec.yaml `rubrics.overrides`.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(rubrics): add NewOverrideLoader for per-spec-type rubric overrides",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T10:32:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "bb8fb2e85969aff468e32ee0a17d13e72f51b848",
"body": "… struct\n\nThe RubricYAML flat parser and VisionSpec-local RubricSet were removed in the\nv0.14.0 rubric migration; rubrics now parse directly into structured-evaluation's\nrubric.RubricSet. Update the RMI-221 roadmap item and the composability plan to\nreflect the canonical format.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(specs): update roadmap/plan references to the retired RubricYAML…",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T10:08:17Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "6dc8cbad01d2eda01d6b9a3040b1f09c42673f06",
"body": "Add the v0.14.0 entry (structured-evaluation RubricSet adoption, native rubric\nYAML, prism-roadmap canvas assets, richer judge prompts, tpd.md embed fix,\ndependency bumps) and regenerate CHANGELOG.md via schangelog.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(changelog): update changelog for v0.14.0",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T09:50:05Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c6846667d0de3168a88ba5f696f2c98a0a7b8b0f",
"body": "Document the rubric standardization on structured-evaluation's RubricSet: the\npkg/rubrics breaking change, the native rubric YAML format, prism-roadmap canvas\nasset consumption, richer judge prompts, a migration guide, and the new\nstructured-evaluation v0.10.0 / prism-roadmap v0.16.0 dependencies. Add the\nrelease to the mkdocs nav.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add v0.14.0 release notes",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T09:48:36Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "161a5353aa726eea5fe5f9810abf1685a05b68b1",
"body": "Update the custom-profiles, organization-customization, and org-cli example\nguides to the canonical structured-evaluation rubric format: spec type from\nthe filename (no spec_type field), categorical scale options for flat rubrics,\nweighted criteria with indicators for rich rubrics, and passCriteria\n(minCategoriesPassing / maxFindingsSeverity / scoreThresholds). Historical\nrelease notes are left as-is.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(rubrics): document the structured-evaluation rubric format",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T09:48:36Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7528882c4bfb52f7a77b59ee4feb2eca145de807",
"body": "buildEvalPrompt previously sent only each category's name, weight, and\ndescription to the judge. Now it renders the actual scoring criteria — the\npayoff of adopting the shared rubric type:\n\n- flat rubrics: the categorical pass/partial/fail criteria as scoring guidance\n- rich rubrics: each weighted s\n[…]\nto the rubric total, so point-weighted and\nfraction-weighted rubrics render correctly. Prompt building now uses a\nstrings.Builder.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(eval): render rubric criteria and indicators in the judge prompt",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T09:48:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fd92f3e07367e497e1f91ee692f2648f8872a3f1",
"body": "…h format\n\nassumption-map, discovery-snapshot, and shapeup-pitch were in an intermediate\nrich format where each criterion's `description` mapped to no structured-\nevaluation field (silently dropped on parse) and `thresholds`/`methodology`\nwere ignored — so they evaluated with empty criteria. Rewrite\n[…]\nreference -> metadata.basedOn,\ncategory and criterion names humanized. They now carry their intended\nweighted criteria (18/15/19).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(rubrics): author the 3 discovery/shapeup rubrics in canonical ric…",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T09:48:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ace36ff35456faac012b65ef5ccf419ddd7e3cce",
"body": "…n native, drop flat parser\n\nRewrite the 80 legacy flat rubric YAMLs (criteria as a pass/partial/fail\nmap) into the canonical structured-evaluation format (categorical Scale\noptions, passCriteria.maxFindingsSeverity), via a committed, self-contained\nmigration tool (tools/migrate-rubric-yaml) that ro\n[…]\nnNative) walks\nevery *.rubric.yaml in the repo and fails if any is not native.\n\nLoader test fixtures updated to the native format.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(rubrics): migrate flat profile YAMLs to structured-evaluatio…",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T09:48:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "46e32f24453a6ae1483ea789b8e91f578c8e0935",
"body": "…nical rubric type\n\nReplace visionspec's parallel flat rubric types (RubricSet, Category,\nCategoricalCriteria, PassCriteria) with structured-evaluation's\nrubric.RubricSet everywhere: the Go registry, all loaders, and the eval\nprompt/response path. The 21 Go-registered rubrics are regenerated as\nrubr\n[…]\nmod carries local replace directives for\nstructured-evaluation and prism-roadmap during development; these are\nremoved at release.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(rubrics)!: adopt structured-evaluation RubricSet as the cano…",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T09:48:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a22a38bac81eebd1a2e77ef4fae9d7401947c085",
"body": "Import prism-roadmap's embedded templates and rubrics (via NewSubFSLoader\nover its FS) as a fallback in the profile template and rubric loaders, and\nremove the duplicated opportunity-spec and bmc templates and rubrics that\nwere copied across profile directories. prism-roadmap v0.15.0 is now the\nsingle source of truth for canonical canvas assets.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(profiles): consume canonical canvas assets from prism-roadmap",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-20T04:18:25Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f612b803de5c93a56ae9f9b18bba45f08c6bd6fe",
"body": "The TPD template file was added with the TPD spec type but never included\nin the //go:embed directive or Available(), so templates.Get(SpecTypeTPD)\nfailed even though tpd.md exists on disk. This left big-tech-product — which\nrequires tpd — with no reachable template through the public API.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(templates): embed tpd.md and add it to Available",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-19T22:31:20Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7c6148c324734229a0ed97f2c80cb11ac928e0b5",
"body": "…ubrics\n\nThe gosec G101 rule flags CategoricalCriteria fields (Pass, Partial, Fail)\nas potential hardcoded credentials. These are rubric evaluation criteria\ntext, not credentials. Applied the same nolint pattern used in existing\nrubrics (mrd.go, prd.go, etc.) to all 12 AIDLC rubric files.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(rubrics): add nolint comments for G101 false positives in AIDLC r…",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T16:51:08Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7a3a49f38c4479077d3cee5358c5f1bef7aa9aab",
"body": "On Windows, system timer resolution is ~15.6ms (vs nanoseconds on Unix).\nOperations completing faster than this resolution return ElapsedTime of 0.\n\nChange assertion from `> 0` to `>= 0` to accommodate Windows behavior.\nThe test validates elapsed time isn't negative (error case), not that\ntime has definitely passed.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(aidlc): fix Windows CI test failure for timer resolution",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T16:36:55Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "107c13caf307f34310e446364a8eeefc8b958cf5",
"body": "- Update installation version to v0.13.0 in README and docs/index.md\n- Update Go version requirement to 1.26.1\n- Add new v0.13.0 features to Key Capabilities:\n - Dual-methodology system\n - AIDLC workflow integration\n - V2MOM strategic planning\n - 1-5 numeric evaluation scoring\n- Update component status table with new features\n- Update release notes link to v0.13.0\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update documentation for v0.13.0 release",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T16:19:17Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d5ceca5de3bfd0968061f9a24803943a82a7ae60",
"body": "- Add v0.13.0 release notes\n- Update CHANGELOG.json with v0.13.0 entries\n- Regenerate CHANGELOG.md via schangelog\n- Add AIDLC integration guide to mkdocs navigation\n- Add v0.13.0 to releases navigation\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: prepare v0.13.0 release",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T16:04:51Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ea8e6c0d247b3c745db7d2e623107a59978f06bf",
"body": "- Update Go version from 1.26.0 to 1.26.1\n- Add github.com/grokify/pidl v0.5.0 for PIDL protocol export\n- Update golang.org/x/sys from v0.46.0 to v0.47.0\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "build(deps): update Go version and add pidl dependency",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:40:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f4abd3c0371fe4c18eb8f71fee4eae9a9df4ef80",
"body": "Fix ASCII diagram box alignment in Open Source vs. Organization\narchitecture section for better readability.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: fix README diagram alignment",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:39:56Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c1004e5e29b65b23643faca0ea9d39d9b5682489",
"body": "Add Phase 15 (AIDLC Workflow Integration v0.8.0) detailing:\n\n- AIDLC core types and workflow DAG\n- Evaluation integration with rubrics\n- Phase transition logic\n- Document templates\n- Sample project and testing\n- Daemon API integration\n- Frontend components\n- Next steps for follow-up work\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update ROADMAP with AIDLC integration phase",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:39:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b6f626d168562dc24535142c93c667a0d36ad23d",
"body": "Add comprehensive guide for AWS AI DLC workflow integration:\n\n- Setup and configuration instructions\n- Workflow phases explanation (inception, construction, operations)\n- API reference and code examples\n- Update guides index to include new guide\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add AIDLC integration guide",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:39:26Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "3baf7fcee3319f94c28c19b153ca00ee86d7fd21",
"body": "Add sample AIDLC project demonstrating the workflow:\n\n- Pre-populated inception phase documents (vision, requirements, technical)\n- Construction phase document (implementation plan in progress)\n- Workflow state file (aidlc-state.md) with progress tracking\n- VisionSpec sync data (.visionspec/specs.json)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(examples): add AIDLC demo project",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:39:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f4c6fcc858b004d24c219de6665141f922e9c672",
"body": "Add V2MOM profiles for different organizational levels:\n\n- v2mom/: Generic V2MOM profile\n- v2mom-company/: Company-level strategic planning\n- v2mom-department/: Department-level V2MOM\n- v2mom-team/: Team-level V2MOM\n\nEach includes templates for vision, values, methods, obstacles,\nand measures with level-appropriate guidance.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(profiles): add V2MOM strategic planning profiles",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:39:00Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "398795a99908410e4d23bebafc7a8ec691d95205",
"body": "Add LLM-as-judge rubrics for all 12 AIDLC document types:\n\n- aidlc_vision.go: clarity, completeness, alignment, feasibility\n- aidlc_requirements.go: testability, traceability, ambiguity\n- aidlc_technical.go: architecture, scalability, security\n- aidlc_architecture.go: ADR quality, component clarity\n\n[…]\noring.go: metrics, logs, alerts, SLOs\n- aidlc_disaster.go: RTO/RPO, procedures, testing\n- aidlc_slo.go: SLI definitions, targets, error budgets\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(rubrics): add AIDLC evaluation rubrics",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:38:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9310a4874afb2380ddf3ebdaf98145f16682f7ef",
"body": "Implement AWS AI DLC workflow integration:\n\n- types.go: Phase, DocType, Document, QualityScore enums and structs\n- workflow.go: Workflow DAG with nodes, edges, and status tracking\n- sync.go: Bidirectional sync between VisionSpec and AIDLC directories\n- state.go: Parse and serialize aidlc-state.md fo\n[…]\nvalidation\n- templates.go: Document templates for all 12 AIDLC doc types\n- pidl_integration.go: PIDL protocol export for workflow visualization\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(aidlc): add AIDLC workflow package",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:38:04Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "24ba932cc7cd9f11dc74d4ed82e129e2ffa51844",
"body": "Add strategic planning (V2MOM) and AWS AI DLC workflow spec types:\n\n- V2MOM: vision, values, methods, obstacles, measures, alignment, summary\n- AIDLC: 12 document types across inception, construction, operations phases\n\nInclude helper functions for spec type groupings by phase.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(types): add V2MOM and AIDLC spec types",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:37:23Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1407eca2c5ba6c1f6845ff55ca0d9c2085ae6d62",
"body": "Add RequirementsMethodology and ImplementationMethodology fields\nto Project, deprecating the old Workflow field.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(types): add methodology fields to Project struct",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:33:19Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "18a18c79ac1b953416d6abaedb7581d9e132b965",
"body": "Add MethodologyType and ImplementationMethodology types to support\nseparating requirements methodologies (WHAT to build) from\nimplementation methodologies (HOW to build).\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(types): add methodology types for dual-methodology system",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:32:37Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cf4148171712d00f14adeef63360c096960e295f",
"body": "Update all petstore-ai-agent evaluation files:\n- Add schemaVersion: \"v2\"\n- Add scoreV2 (1-5 integer)\n- Add confidence values\n- Add dimensions with per-category scores\n- Add blocking array\n- Update reason codes to category-prefix format (REQ-*, METRIC-*, etc.)\n\nFiles updated: mrd.json, prd.json, uxd.json, opportunity-spec.json\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(examples): update petstore eval files to v2 format",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:28:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "27d56a7b1b265c77d80d08ce50dd46df2ca2db52",
"body": "- Update score scale description (1-5 instead of 0-10)\n- Add v2 evaluation result format with dimensions\n- Add reason codes section with category prefixes\n- Add confidence values and pass criteria\n- Link to reason codes reference\n- Add reason-codes.md to mkdocs navigation\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(cli): update eval command for v2 format",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:28:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1e32b1e8fb33856a0348cee0a3ef52cf5e2f2371",
"body": "Add comprehensive documentation for reason codes:\n- Code format: {CATEGORY}-{ISSUE}\n- All 10 categories with their codes\n- Default severities for each code\n- AI-assisted repair workflow examples\n- Human review requirements by category\n- v2 evaluation result format\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(concepts): add reason codes reference",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:28:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "83401c6ff08afcef7cbb81ce005c778897728ca9",
"body": "Update test assertions for v2 evaluation fields.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "test(eval): update integration tests for v2 schema",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:28:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d75feab61ce74033607f0363016c7e5c7ab7938b",
"body": "Update evaluation types and rendering for v2 schema:\n- Add IntScore (1-5), Confidence, Blocking fields to Result\n- Add IntScore, Confidence, ReasonCodes to CategoryResult\n- Add Code, Location fields to Finding\n- Update renderers to display v2 scores with labels\n- Support both v1 (0-10) and v2 (1-5) score formats\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(eval): implement v2 evaluation schema with 1-5 scoring",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:28:43Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0528c4dc9a0444ab3e345e5b7b2d9aabdace7649",
"body": "…thub.com/plexusone/structured-evaluation-0.9.0\n\nchore(deps): bump github.com/plexusone/structured-evaluation from 0.8.0 to 0.9.0",
"is_bot": false,
"headline": "Merge pull request #4 from ProductBuildersHQ/dependabot/go_modules/gi…",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:29:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9d67053bc5ee724dd8eceaeaf5914a4efe6b562b",
"body": "…thub.com/grokify/oscompat-0.5.0\n\nchore(deps): bump github.com/grokify/oscompat from 0.4.0 to 0.5.0",
"is_bot": false,
"headline": "Merge pull request #3 from ProductBuildersHQ/dependabot/go_modules/gi…",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-18T15:29:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3436cb5b56aa4b4dd20e6cac65925d37c4cbea54",
"body": "Bumps [github.com/plexusone/structured-evaluation](https://github.com/plexusone/structured-evaluation) from 0.8.0 to 0.9.0.\n- [Release notes](https://github.com/plexusone/structured-evaluation/releases)\n- [Changelog](https://github.com/plexusone/structured-evaluation/blob/main/CHANGELOG.md)\n- [Commi\n[…]\ncom/plexusone/structured-evaluation\n dependency-version: 0.9.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump github.com/plexusone/structured-evaluation",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-13T23:55:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e8181723455fc6f3dd12e914f25fac0c8065cc28",
"body": "Bumps [github.com/grokify/oscompat](https://github.com/grokify/oscompat) from 0.4.0 to 0.5.0.\n- [Release notes](https://github.com/grokify/oscompat/releases)\n- [Changelog](https://github.com/grokify/oscompat/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/grokify/oscompat/compare/v0.4.0...v0.\n[…]\ny-name: github.com/grokify/oscompat\n dependency-version: 0.5.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump github.com/grokify/oscompat from 0.4.0 to 0.5.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-13T23:54:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "830e869f07d15eed84593eae40a7237fdc19aa68",
"body": "- Add docs/releases/v0.12.0.md release notes\n- Update mkdocs.yml navigation with v0.12.0\n- Update CHANGELOG.json with v0.12.0 entries\n- Regenerate CHANGELOG.md via schangelog\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: prepare v0.12.0 release documentation",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T14:15:44Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e02eb5c85b81ac3f950b3d5d6f9580e9796bed60",
"body": "In true AWS Working Backwards, the 6-Pager is the leadership approval\ngate BEFORE investing in detailed PRD/UXD work. Leaders read the\n6-Pager to decide if the project should proceed.\n\nUpdated flow:\nMRD → Press → FAQ → 6-Pager → PRD → UXD → TRD → IRD → TPD → Spec\n\nAlso updated PRD synthesis to include narrative-6p as a source,\nensuring detailed requirements align with the approved narrative.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(workflow): place 6-Pager before PRD/UXD per AWS Working Backwards",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T13:54:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e302419835aca5bac908add1edc0d2775a6bdd65",
"body": "Infrastructure Design is now required in the workflow, positioned\nbetween TRD and TPD. This supports teams with separate infra and\napp design responsibilities.\n\nIRD synthesis sources: trd, prd\nIRD guidance: deployment, scaling, cloud services, monitoring,\nsecurity, operational runbooks, cost estimates, capacity planning\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(profiles): add IRD as required spec in big-tech-product",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T13:50:25Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8ea9fc33d08962890e146493a1bb83d6451313a6",
"body": "Change spec sorting from category-first (Source → GTM → Technical)\nto true AWS Working Backwards dependency order:\n\n1. Discovery: opportunity-spec, mrd\n2. Vision: press, faq (Working Backwards)\n3. Product: prd, uxd (informed by PR/FAQ)\n4. Narrative: narrative-6p, narrative-1p, bmc\n5. Technical: trd,\n[…]\nrd, tpd\n6. Output: spec, current-truth\n\nThis ensures the sidebar nav follows the actual synthesis flow\nrather than arbitrary category grouping.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(types): use true workflow order for spec sorting",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T13:44:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e0da8b1261d6588aadd849b914695e15de0428f2",
"body": null,
"is_bot": false,
"headline": "docs: `mkdocs.yml`: update nav",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T13:02:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f54a66a912178c3b4d0dd682c2bf806e79f4b1f9",
"body": "- Add docs/cli/workflow.md with usage, flags, and examples\n- Update docs/mcp/tools.md with get_workflow tool documentation\n- Add workflow.md to mkdocs.yml navigation\n- Add workflow command to README CLI table\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add workflow CLI command and MCP tool documentation",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T12:59:08Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9e78216b569eebca0a37baf949cc256154fb857d",
"body": "- Add docs/releases/v0.11.0.md with workflow IR and specworkflow features\n- Update CHANGELOG.json with v0.11.0 release entry\n- Regenerate CHANGELOG.md via schangelog\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add v0.11.0 release notes and update changelog",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T12:44:55Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cf9e5220db874ddec1415f0a557dde6e25a5ec44",
"body": "- Add proper error handling helpers in workflow tests instead of discarding errors\n- Fix gofmt formatting in MCP server imports\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: address lint errors in workflow tests and MCP server",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T12:39:59Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c28c2ecd436cc905701119bc6c02586b10bdb445",
"body": "Example project demonstrating visionspec workflow with specs in\nvarious states (pass, conditional, fail) for testing and demo.\nBased on OpenAPI Petstore with AI recommendation features.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add petstore-ai-agent example project",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T12:36:10Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ba46de45dc32ca6e67fe2d4e520908bc86b689e3",
"body": "Adds 'workflow' CLI command and 'get_workflow' MCP tool to display\nproject workflow DAG with nodes, dependencies, phases, and progress.\nSupports JSON, Mermaid, and DOT output formats.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): add workflow command and MCP tool",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T12:35:38Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d9ab9a07eafe468157bc333ae85303414512f9db",
"body": "Ensures consistent spec ordering in AllSpecs() by sorting by\ncategory (source, gtm, technical, output) then by workflow\nposition within each category. Fixes PR-FAQ ordering.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(types): sort specs by category and workflow order",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T12:35:24Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2933cc6bdfbf66fdbc6e9468dbe8c81d10c42d22",
"body": "Adapts the generic workflow package for visionspec, generating\nworkflows from profiles by mapping spec types to nodes and\nsynthesis dependencies to edges.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(workflow): add specworkflow adapter for visionspec profiles",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T12:35:09Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a678d96f1a19eb57fff65d7f509fc6d9efdf0a8e",
"body": "Introduces a generic workflow intermediate representation (IR) for\nmodeling directed acyclic graphs of work items with dependencies.\nIncludes builder pattern, topological sort, and Mermaid rendering.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(workflow): add workflow IR package for DAG modeling",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T12:34:45Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ae37cce5c40be771b79816ed46036556b20e29d5",
"body": null,
"is_bot": false,
"headline": "docs: `README.md`: add hero link",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T07:34:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "adbc020f89f99f7dd43b3f333bcc575b31ba39a6",
"body": null,
"is_bot": false,
"headline": "chore(deps): `go mod`: update dependencies",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-06T07:32:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "309ca8614d929300d016c8c0445896645321183d",
"body": null,
"is_bot": false,
"headline": "docs: `README.md`: add hero image",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-05T18:13:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "05cccfa2091f320acc94254c93e37a12f3be036d",
"body": null,
"is_bot": false,
"headline": "docs: `README.md`: update shields",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-07-04T09:51:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22c7eaf72c0667f17dd412860e450ce5271c422a",
"body": "…thub.com/plexusone/omnillm-core-0.17.0\n\nchore(deps): bump github.com/plexusone/omnillm-core from 0.16.0 to 0.17.0",
"is_bot": false,
"headline": "Merge pull request #1 from ProductBuildersHQ/dependabot/go_modules/gi…",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-29T08:01:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7a6a2500a77e8ac104fb41f309cea6d336db9e7b",
"body": "Bumps [github.com/plexusone/omnillm-core](https://github.com/plexusone/omnillm-core) from 0.16.0 to 0.17.0.\n- [Release notes](https://github.com/plexusone/omnillm-core/releases)\n- [Changelog](https://github.com/plexusone/omnillm-core/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/plexusone/o\n[…]\n github.com/plexusone/omnillm-core\n dependency-version: 0.17.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump github.com/plexusone/omnillm-core",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-28T20:37:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "46ff8e5bffb22525c1a0b15d2bb1162e2b77f901",
"body": "…thub.com/plexusone/structured-evaluation-0.8.0\n\nchore(deps): bump github.com/plexusone/structured-evaluation from 0.7.0 to 0.8.0",
"is_bot": false,
"headline": "Merge pull request #2 from ProductBuildersHQ/dependabot/go_modules/gi…",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-28T20:36:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "51318bd7d87fdf2edc647e46a0e7184204a220b1",
"body": "Bumps [github.com/plexusone/structured-evaluation](https://github.com/plexusone/structured-evaluation) from 0.7.0 to 0.8.0.\n- [Release notes](https://github.com/plexusone/structured-evaluation/releases)\n- [Changelog](https://github.com/plexusone/structured-evaluation/blob/main/CHANGELOG.md)\n- [Commi\n[…]\ncom/plexusone/structured-evaluation\n dependency-version: 0.8.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump github.com/plexusone/structured-evaluation",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-22T23:54:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "13e161116c8535081322cb5c0fe88b8a1f20efaf",
"body": "- Fix visualization badge URL (plexusone → ProductBuildersHQ)\n- Add Cross-Project Analysis section with search, reuse, patterns commands\n- Add workflows command to Context & Traceability section\n- Add get_execution_status and track_requirement MCP tools\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(readme): add missing CLI commands and MCP tools",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-14T13:30:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "03416dc980fe901f9c2f727b02559f6bb974bba7",
"body": "- Update CHANGELOG.json with v0.10.0 entries\n- Regenerate CHANGELOG.md via schangelog\n- Add docs/releases/v0.10.0.md release notes\n- Update mkdocs.yml with v0.10.0 in releases nav\n- Update README.md current version to v0.10.0\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: prepare v0.10.0 release",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T17:18:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b865371bc4d62bf7b2d147faae6ef4552513c466",
"body": "G115 (integer overflow): Replace string(rune(i)) with strconv.Itoa(i)\nin pairKey function to avoid potential integer overflow when converting\nint to rune.\n\nG122 (filepath.Walk TOCTOU): Add nolint comments for ReadFile calls\ninside filepath.Walk callbacks. These are internal spec-scanning tools\nwhere the user provides the directory - the security risk is minimal\nfor this use case.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: resolve gosec lint issues G115 and G122",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T17:04:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d5ad31a9eef936883fb1e1ae2409d3e723eaebfe",
"body": "The JTBD canvas implementation in prism-roadmap includes:\n- JTBDCanvas with full methodology support\n- JobStatement, OutcomeExpectation, Force, HiringSolution types\n- ODI scoring with CalculateOpportunityScore\n- Job filtering (functional, emotional, social)\n- Opportunity analysis (top, underserved, overserved)\n- Switch interview tracking\n- Markdown renderer support\n- Comprehensive unit tests\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: mark RMI-494 JTBD profile Go structs as complete",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T16:29:51Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "aa457756368b1134eee85b6c3faf3b01f9979275",
"body": "Update from commit-based pseudo-version to tagged release.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(deps): update oscompat to v0.4.0",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T16:20:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e2e5acdd845cd3968f59cfe10ef2bb16223cb93d",
"body": "Replace Unix-specific mode bit checks (info.Mode()&0111) with\noscompat/fs.IsExecutable for cross-platform executable detection.\n\nThis fixes CI failures on Windows where the Unix executable bit\ncheck always fails since Windows doesn't use permission bits.\n\nThe oscompat abstraction:\n- Unix/macOS: checks execute permission bits\n- Windows: checks file extensions or no-extension (git hooks)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(hooks): use oscompat for cross-platform executable detection",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T16:02:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "212aff40c8bc1497efe1fae80f2f3c0f1f65b439",
"body": "Mark completed items with implementation details:\n- RMI-148: MkDocs graph embedding\n- RMI-350-352: Search, reuse, patterns packages and CLI\n- RMI-601/611/640/641: MCP execution tools and prompts\n- RMI-496: Core workflow documentation\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update ROADMAP with completed implementation items",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T15:16:36Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "412610e3147493b559bacaea02e0d4cea1971e54",
"body": "Add framework-specific workflow documentation:\n- Shape Up flow (pitch → betting → scope → hill chart → build)\n- Continuous Discovery flow (touchpoints → OST → assumptions)\n- Combined Shape Up + Continuous Discovery workflow\n\nIncludes key principles for each framework and guidance\non combining them for ongoing discovery with execution cycles.\n\nImplements RMI-496.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(workflow): add Shape Up and Continuous Discovery flows",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T15:14:59Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b0e68c49eb7676f430ad9df240a2f3de1a9d0e10",
"body": "Add MCP tools for execution status tracking:\n- get_execution_status - track requirement implementation progress\n- track_requirement - update requirement status with evidence\n\nAdd MCP prompts for guided implementation:\n- implement_requirement - guide requirement implementation\n- verify_acceptance - guide acceptance criteria verification\n- resolve_drift - guide drift resolution\n\nImplements RMI-601, RMI-611, RMI-640, RMI-641.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(mcp): add execution tracking tools and prompts",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T15:14:22Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5bb1c0ca811af331ffdaa0a6ff2c40f0b25cb1a9",
"body": "Add CLI commands for cross-project analysis:\n- visionspec search <query> - full-text search with filters\n- visionspec reuse - analyze requirement reuse opportunities\n- visionspec patterns - detect patterns and anti-patterns\n\nCommands support --format flag for JSON/terminal output.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): add search, reuse, and patterns commands",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T15:11:09Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "98d0053ea5725eff7efe69c46615a84a1e081abb",
"body": "Add patterns package for detecting patterns and anti-patterns:\n- Structural patterns (common sections across specs)\n- Content patterns (user stories, acceptance criteria, API refs)\n- Anti-patterns (empty sections, vague requirements, TODOs)\n- Quality scoring based on anti-pattern severity\n\nImplements RMI-352.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(patterns): add specification pattern detection",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T15:10:20Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5a7753a47e845e08fb2f68d926dbac3a3de7ee32",
"body": "Add reuse package for identifying reusable requirements:\n- Extract requirements using RFC 2119 patterns\n- Find duplicate requirements across projects\n- Find similar requirements via keyword overlap\n- Suggest consolidation and template opportunities\n\nImplements RMI-351.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(reuse): add requirement reuse tracking across projects",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T15:09:09Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "fcb04a68db5dec9f2a89c3c5d44a5d7a33c9b492",
"body": "Add search package for searching across all spec files:\n- Searcher with configurable search options\n- Filter by project, spec type, with regex support\n- Ranked results with match counts and context\n- Faceted results by project and spec type\n\nImplements RMI-350.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(search): add full-text search across specification files",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T15:08:56Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "abef7b5ffdc8f9fe528d8be38cb671f4592699fa",
"body": "Add functions to detect and embed graphize visualization output\nin MkDocs project documentation:\n- DetectGraphizeOutput() - finds graphize HTML output\n- GenerateProjectIndexWithGraph() - generates index with auto-detection\n- EmbedGraphizeInIndex() - embeds iframe or link for visualization\n\nImplements RMI-148.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(mkdocs): add graphize visualization embedding support",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T15:08:44Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f4b9b61013b30ec7b7f1ba9a69dddb542a30e6e1",
"body": "Mark completed items:\n- RMI-036/037: align command and current-truth structure\n- RMI-090/091: OpenSpec adapter\n- RMI-103: Git hooks support\n- RMI-110/111: Cross-project deps and ROADMAP generation\n- RMI-120/121: Decision log and rationale graphs\n- RMI-130/131: Metrics dashboard\n- RMI-442/443: Contex\n[…]\nfy graphize integration:\n- RMI-148: MkDocs graph embedding uses graphize exporters\n- RMI-350-352: Search/reuse/patterns integrate with graphize\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update ROADMAP.md with implementation status",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T14:18:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d99bfc9ffe0440436fc5a356aff0dec41fe84c99",
"body": "- Add docs/cli/align.md: alignment checking documentation\n- Add docs/cli/metrics.md: metrics dashboard documentation\n- Add docs/cli/hooks.md: Git hooks management documentation\n- Update docs/cli/index.md: add new commands to reference\n- Update mkdocs.yml: add new pages to navigation\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(cli): add documentation for align, metrics, and hooks commands",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T13:10:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2716a325805d94fd5c8d56e8650086aac9d413f8",
"body": "- Add align, metrics, hooks commands to CLI reference\n- Update export targets: openspec, github, jira now implemented\n- Add new MCP tools: align_spec, get_metrics, install_hooks, etc.\n- Update project status: Phase 8 complete, Phase 14 complete\n- Update current version to v0.9.0\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update README with new commands and targets",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T07:25:06Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d67dbb271bcf850ec27f196fc2821d409e902857",
"body": "- Extract loadContextForCommand helper to fix dupl lint\n- Fix gofmt formatting in hooks.go\n- Add nolint for gosec G306 (file permissions)\n - hooks.go: Git hooks must be executable (0755)\n - commands.go: Documentation file needs to be readable (0644)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: resolve lint issues in cli and hooks",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T07:19:48Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "07dce9d6a54ef7d19324a5ebebeddc5a89192fcf",
"body": "Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(deps): update go dependencies",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:55:26Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ebb4995263b24138f8d3068c3f12a3ae249984f3",
"body": "Mark completed roadmap items:\n- RMI-036, RMI-037: Post-ship alignment (align command, current-truth)\n- RMI-090, RMI-091: OpenSpec adapter\n- RMI-103: Git hooks support\n- RMI-148: MkDocs graph embedding\n- RMI-110, RMI-111: Cross-project dependencies, ROADMAP generation\n- RMI-120, RMI-121: Decision log\n[…]\n: Evaluation metrics dashboard\n- RMI-442, RMI-443: Context flags on align command\n- RMI-621, RMI-630, RMI-631: Test mapping, GitHub/Jira export\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update ROADMAP.md with completion status",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:55:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9a1ca3321f4056ba82b726cff2ed520cc697c811",
"body": "Add MCP tool handlers:\n- align_spec: Run alignment checking\n- get_alignment_status: Get alignment status\n- track_resolution: Track discrepancy resolution\n- get_metrics: Get evaluation metrics\n- install_hooks: Install git hooks\n- get_hooks_status: Get hooks status\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(mcp): add MCP tools for new features",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:55:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ebca7423d0d68d607fda2246481f95f8b33f1cdf",
"body": "Add CLI commands for new packages:\n- visionspec align: Post-ship alignment checking\n- visionspec hooks install/uninstall/status: Git hooks management\n- visionspec metrics: Evaluation metrics dashboard\n- Context flags: --with-context, --context-file on align/drift\n\nUpdates to existing commands:\n- drift: Add --with-context and --context-file flags\n- Export: Support openspec, github, jira targets\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): integrate commands for new features",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:54:44Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9fd56cf9c05469f7612a18ab7fe9198e41434d10",
"body": "GitHub Issues export (pkg/target/github_issues.go):\n- Export requirements as GitHub issues\n- Create milestones from phases\n- Link issues to specs via labels\n- Priority and label mapping\n\nJira export (pkg/target/jira.go):\n- Export as Jira epics/stories\n- Map priorities and labels\n- Create project boa\n[…]\nverage by requirement\n- Report uncovered requirements\n- Support multiple test frameworks\n\nImplements RMI-621, RMI-630, RMI-631 from ROADMAP.md.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: add GitHub Issues, Jira export, and test mapping",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:54:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "110bce37abbb26ff9aa9f7b020a5f0edf858e262",
"body": "Add pkg/metrics for tracking spec evaluation metrics:\n\n- Spec quality trends over time\n- Common failure patterns\n- Conflict frequency tracking\n- Resolution time metrics\n- Dashboard renderers: HTML, JSON, terminal\n- Reconciliation metrics\n\nImplements RMI-130, RMI-131 from ROADMAP.md (Analytics).\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(metrics): add evaluation metrics dashboard",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:53:48Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "62956a3cbd1750f90552d62e553e842e76dafe6f",
"body": "Cross-project dependencies (pkg/deps):\n- Dependency graph between projects\n- Dependency cycle detection\n- Impact analysis for changes\n- Visualization support\n\nROADMAP.md generation (pkg/roadmap):\n- Aggregate project statuses\n- Priority-based ordering\n- Progress tracking\n- Milestone mapping\n\nDecision\n[…]\n Link decisions to requirements\n- Impact analysis\n- Searchable decision history\n\nImplements RMI-110, RMI-111, RMI-120, RMI-121 from ROADMAP.md.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: add cross-project deps, roadmap generation, and decisions",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:51:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1443f4b3fd4435dc5177c5722d001610ecf2f0a5",
"body": "Git hooks for automated spec validation:\n- pre-commit: Lint changed spec files\n- pre-push: Validate specs before push\n- commit-msg: Validate commit message format\n- post-commit: Update spec status after commit\n- Install/uninstall/status commands\n\nMkDocs graph embedding:\n- Embed graphize visualizatio\n[…]\nrt for inline SVG and linked HTML exports\n- Configurable graph options\n\nImplements RMI-103 (Git hooks), RMI-148 (MkDocs graph) from ROADMAP.md.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(hooks): add Git hooks and MkDocs graph embedding",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:50:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b6467350b3be2501a4c0519599fd20e828ac4a3a",
"body": "Add OpenSpec target adapter for cross-tool compatibility:\n\n- Portable JSON/YAML schema for requirements\n- Standardized structure: metadata, sections, requirements, tasks\n- Acceptance criteria with test mapping\n- Dependency graph support\n- YAML and JSON output variants\n\nImplements RMI-090, RMI-091 from ROADMAP.md (OpenSpec Adapter).\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(target): add OpenSpec portable export format",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:47:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b07268a01b0e9a479ecbe583227e3ba51dd7d732",
"body": "Add pkg/align package for comparing spec.md against actual implementation:\n\n- Discrepancy types: missing_feature, undocumented_code, diverged,\n partial_implementation, behavior_mismatch\n- Severity levels: critical, high, medium, low, info\n- Alignment scoring (0-100%)\n- current-truth.md generation\n-\n[…]\nworkflow for tracking fixes\n- Multiple output formats: text, json, markdown\n\nImplements RMI-036, RMI-037 from ROADMAP.md (Post-Ship Alignment).\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(align): add post-ship alignment checking",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-13T06:47:04Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "988c6941316986d9a472146d3f07bac213713c4d",
"body": "Update documentation to reflect new default rich output:\n- Add --basic flag for legacy simplified output\n- Document pipeline visualization with status icons\n- Add box-drawing table examples\n- Update JSON schema with pipeline and aggregate fields\n- Update markdown format examples\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(cli): update status command for rich output format",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T11:37:35Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "905283f516f3ea2ae4971df1a00272a5ab4b1885",
"body": "Change status command to use rich output by default:\n- Pipeline visualization with status icons (✅/❌/🔄)\n- Box-drawing tables for summary display\n- Completion percentage and aggregate categories\n- Add --basic flag for legacy simplified output\n\nRich format is optimized for AI agents consuming CLI output.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): use rich status output as default for AI agents",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T10:11:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e34c103fc691cee7feb94c6c8f0cd862759fa287",
"body": "Add tests for:\n- NewRichReport: pipeline building, aggregate categories\n- RichReport setters: highlights, findings, steps, decisions\n- RenderRichText: terminal output with box-drawing\n- RenderRichMarkdown: markdown output with tables\n- buildPipeline: stage status determination\n- formatFindings: finding string formatting\n- truncate: string truncation helper\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "test(status): add tests for rich report functionality",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T10:04:34Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "901ca7b06225a2a54c14d95ad240781124716c7c",
"body": "Add RichReport type extending Report with:\n- Pipeline visualization with stage statuses\n- CategoryBreakdown for pass/partial/fail counts\n- LLM-fillable semantic fields (Highlights, MediumFindings,\n NextSteps, KeyDecisions, ReadySummary)\n\nAdd deterministic renderers:\n- RenderRichText: terminal outpu\n[…]\nenderKeyDecisions: decision table\n\nThis enables LLMs to fill semantic fields while visionspec\nrenders the rich status format deterministically.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(status): add rich report JSON IR schema and renderers",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T09:58:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "73e84643f84bcc40bc5412f46bfa31990d0f79c4",
"body": null,
"is_bot": false,
"headline": "docs: `mkdocs.yml`: add `v0.9.0` to nav",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T09:23:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0138dcddacb712ffc99a68b690dc0011b780b53b",
"body": "- Update installation version to v0.9.0\n- Add spec-workflows integration section\n- Document workflow selection on init\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update README for v0.9.0",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T09:14:05Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7b6b68495e70881d5f4229eeb422fb5c5ab1f307",
"body": "Add CLI documentation for the new workflows command.\nUpdate MkDocs navigation to include workflows page.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(cli): add workflows command documentation",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T09:13:41Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "baff3150ffd200b331f1bf64e97ab70c9c7b5b41",
"body": "Add v0.9.0 release entry with spec-workflows integration features.\nRegenerate CHANGELOG.md using schangelog.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update changelog for v0.9.0",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T09:13:32Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "731da863cb45930426a501d38a985050aa7d67ae",
"body": "Document spec-workflows integration features:\n- External repository loading and auto-discovery\n- workflows command for listing methodologies\n- init --workflow flag for methodology selection\n- Environment variable and search path configuration\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add v0.9.0 release notes",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T09:13:10Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "99581d44bc15a1af686a1adc82d9e3e6b4fe685d",
"body": "Add persistent --workflows-repo flag to root command for explicit\nspec-workflows repository path specification.\n\nWhen set, overrides auto-discovery and uses the specified path.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): add --workflows-repo global flag",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T08:58:25Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7977b346345cb098f18ae7cd21c294bb8493e972",
"body": "Add user-facing workflow features:\n\n- 'visionspec workflows' command lists available workflows\n Shows repository path and grouped workflow IDs\n Provides setup instructions if no repo found\n\n- 'visionspec init --workflow=<id>' flag\n Validates workflow exists in discovered repo\n Stores workflow ID in visionspec.yaml\n Uses workflow-specific templates when --with-templates\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): add workflows command and init --workflow flag",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T08:58:05Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d6b4a600d2a16ccbee8256d9b4f735dbbc4b59bf",
"body": "Add WorkflowsRepoPath field and helper methods to CLI Config:\n- GetWorkflowsRepo() - loads repo with auto-discovery\n- GetWorkflowsRepoPath() - returns discovered path\n- GetTemplateLoaderForWorkflow() - methodology-specific templates\n- GetRubricLoaderForWorkflow() - methodology-specific rubrics\n- Lis\n[…]\n) - lists all workflow IDs\n\nAuto-discovery allows visionspec to find spec-workflows repos\nwithout explicit --workflows-repo flag in most cases.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): add workflows repo support to Config",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T08:57:55Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "cb0d5143611b76a49d8597cdfa972328580e4741",
"body": "Store the selected workflow (methodology/level) in project config.\nExample: \"aws-working-backwards/product\"\n\nThis enables projects to specify which spec-workflows methodology\nthey follow, affecting template and rubric selection.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(types): add Workflow field to Project",
"author_name": "John Wang",
"author_login": "grokify",
"committed_at": "2026-06-08T08:57:44Z",
"body_truncated": false,
"is_coding_agent": true
}
],
"releases_count": 14,
"commits_last_year": 288,
"latest_release_at": "2026-07-20T10:43:50Z",
"latest_release_tag": "v0.14.0",
"releases_from_tags": false,
"days_since_last_push": 4,
"active_weeks_last_year": 9,
"days_since_latest_release": 4,
"mean_days_between_releases": 6.1
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 50,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/ProductBuildersHQ/visionspec",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/ProductBuildersHQ/visionspec",
"is_deprecated": false,
"latest_version": "v0.14.0",
"repository_url": "https://github.com/ProductBuildersHQ/visionspec",
"versions_count": 14,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-20T10:38:02Z",
"latest_version_yanked": null,
"days_since_latest_publish": 4
}
]
},
"popularity": {
"forks": 0,
"stars": 0,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": {
"days": [],
"complete": true,
"collected": 0,
"total_stars": 0,
"collected_at": null
},
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": true,
"bootstrap_files": [
"Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod"
],
"largest_source_bytes": 153218,
"source_files_sampled": 163,
"oversized_source_files": 2,
"agent_instruction_files": [
"CLAUDE.md"
],
"agent_instruction_max_bytes": 6881
},
"dependencies": {
"manifests": [
"go.mod"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/bmatcuk/doublestar/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.10.0"
},
{
"name": "github.com/fsnotify/fsnotify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.1"
},
{
"name": "github.com/grokify/oscompat",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.0"
},
{
"name": "github.com/grokify/pidl",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.0"
},
{
"name": "github.com/grokify/prism-roadmap",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.16.0"
},
{
"name": "github.com/modelcontextprotocol/go-sdk",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.1"
},
{
"name": "github.com/plexusone/graphfs",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.2.0"
},
{
"name": "github.com/plexusone/graphize",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.4.0"
},
{
"name": "github.com/plexusone/omnillm-core",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.18.0"
},
{
"name": "github.com/plexusone/structured-evaluation",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.10.0"
},
{
"name": "github.com/spf13/cobra",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.2"
},
{
"name": "gopkg.in/yaml.v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 4,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "grokify",
"commits": 284,
"avatar_url": "https://avatars.githubusercontent.com/u/209872?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"go-ci.yaml",
"go-lint.yaml",
"go-sast-codeql.yaml"
],
"has_docs_dir": true,
"linter_configs": [
".golangci.yaml"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 5 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "no SAST tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 9,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "295661bd0d0a5d55c823e64ccf20433e1f7375e1",
"ran_at": "2026-07-25T00:12:05Z",
"aggregate_score": 4.9,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": true,
"has_security_policy": false,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-24T23:53:35Z",
"oldest_open_prs": [],
"last_merged_pr_at": "2026-07-18T15:29:40Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/ProductBuildersHQ/visionspec",
"host": "github.com",
"name": "visionspec",
"owner": "ProductBuildersHQ"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 59,
"inputs": {
"security": 49,
"vitality": 76,
"community": 24,
"governance": 54,
"engineering": 84
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 76,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"commits_last_year": 288,
"human_commit_share": 0.96,
"days_since_last_push": 4,
"active_weeks_last_year": 9
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 4 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 4
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "9/52 weeks with commits",
"points": 6.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 9
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "288 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 288
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"releases_count": 14,
"latest_release_tag": "v0.14.0",
"releases_from_tags": false,
"days_since_latest_release": 4,
"mean_days_between_releases": 6.1
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "14 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 14
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 4 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 4
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~6.1 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 6.1
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 24,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 0,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "0 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 0
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 54,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 20,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 5 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 72,
"inputs": {
"merged_prs": 4,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "4/4 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 4,
"decided": 4
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 38,
"inputs": {
"followers": 0,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "ProductBuildersHQ",
"public_repos": 9,
"account_age_days": 172
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "0 followers of ProductBuildersHQ",
"points": 0,
"status": "missed",
"details": [
{
"code": "owner_followers",
"params": {
"count": 0,
"login": "ProductBuildersHQ"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "9 public repos, account ~0 yr old",
"points": 8.2,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 9
}
},
{
"code": "account_age_years",
"params": {
"years": 0
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/ProductBuildersHQ/visionspec"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 4
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 4 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 4
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "14 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 14
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 84,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 80,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "3 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 3
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": ".golangci.yaml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yaml"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": "http://productbuildershq.com/visionspec/",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "http://productbuildershq.com/visionspec/",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 49,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 49,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 15,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 3,
"scorecard_aggregate": 4.9
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 5 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 6.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 2
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "excellent",
"name": "AI Readiness",
"value": 85,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [
"CLAUDE.md"
],
"agent_instruction_max_bytes": 6881
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "CLAUDE.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "96 of 96 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 96,
"sampled": 96
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "excellent",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [
"Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0.86,
"toolchain_manifests": [
"go.mod"
],
"dependency_bot_commit_share": 0.04
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".golangci.yaml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yaml"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "86 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 86,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "4 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 4,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 99,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 153218,
"source_files_sampled": 163,
"oversized_source_files": 2
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "2/163 source files over 60KB",
"points": 54.3,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 163,
"oversized": 2
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "moderate",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": true,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 20,
"status": "met",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-25T00:12:10.304580Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/p/ProductBuildersHQ/visionspec.svg",
"full_name": "ProductBuildersHQ/visionspec",
"license_state": "standard",
"license_spdx": "MIT"
}