main
John Lauer Retain nominal model correction evidence and exact ordering metadata bfd4510 24d ago
{
  "status": "ok",
  "data": {
    "published": "adom/sn74lvc1g175dbvr",
    "version": "0.1.1",
    "sha256": "sha256-28f8c5d2a8bf7965b47f47f80482b12dcd1bb2c34dc6d2d8848f71d93f35f46a",
    "visibility": "public",
    "url": "/adom/sn74lvc1g175dbvr",
    "install": "adom-wiki pkg install adom/sn74lvc1g175dbvr"
  },
  "hints": [
    {
      "level": "info",
      "code": "COMPONENT_SKILLS_MISSING",
      "message": "This component ships CAD data but no skill. An agent that installs it gets files, not capability: it still does not know pin 1 orientation, decoupling, or how to drop the part into KiCad/Fusion.",
      "action": "Add skills/<part-usage>/SKILL.md to the tarball teaching how to USE the part (placement, pin mapping, gotchas, reference circuits). It renders on the Skills tab and delivers on install."
    },
    {
      "level": "warn",
      "code": "PAGE_JSON_IGNORED",
      "message": "The tarball ships page.json carrying discovery_triggers, discovery_pitch, hero, but pkg publish does not read page.json: those fields did nothing here. Only the package.json manifest counts.",
      "action": "Move the fields into package.json (page.json is only read on page-repo pushes).",
      "data": {
        "path": "page.json",
        "tarball_version": "0.1.1",
        "publish_version": "0.1.1",
        "fields": [
          "discovery_triggers",
          "discovery_pitch",
          "hero"
        ]
      }
    },
    {
      "level": "info",
      "code": "TAG_IS_A_CATEGORY",
      "message": "Tag(s) \"component\" duplicate structured category values. The hardware browser suppresses category-name tags from the tag row, so they do nothing there.",
      "action": "Set component.category in page.json instead (the structured axis owns what-sort-of-part), and keep tags for cross-cutting traits like kicad, press-fit, or automotive.",
      "data": {
        "tags": [
          "component"
        ]
      }
    },
    {
      "level": "info",
      "code": "DISCOVERY_PREVIEW",
      "message": "discovery preview: you rank #1 among 1 results for your triggers",
      "action": "drop generic triggers that collide; lean into the unique wins where you rank #1",
      "data": {
        "your_rank": 1,
        "results_returned": 1,
        "collisions": [],
        "weak_triggers": [],
        "unique_wins": [
          "sn74lvc1g175dbvr"
        ]
      }
    },
    {
      "level": "info",
      "code": "STALE",
      "message": "Flagged stale: Zero stars; Zero discussions.",
      "action": "Ship a new release/commit, or deprecate the package if it's no longer maintained."
    },
    {
      "level": "info",
      "code": "WORKSPACE_FEATURE",
      "message": "This page can ship its author's Hydrogen bench: commit hydrogen/workspace.json (the pane layout with apps referenced by wiki page) and readers of a clone or fork open the same layout, apps installed and serving, with one command. Hydrogen Cloud lists it under Project workspaces with an Apply button.",
      "action": "From the container where the bench is open: adom-cli hydrogen workspace export --out hydrogen/workspace.json, then adom-wiki repo push adom/sn74lvc1g175dbvr -m \"bench\" --files hydrogen/workspace.json. Readers: adom-cli hydrogen workspace apply adom/sn74lvc1g175dbvr. Details: the wiki-workspaces skill.",
      "data": {
        "path": "hydrogen/workspace.json",
        "apply": "adom-cli hydrogen workspace apply adom/sn74lvc1g175dbvr"
      }
    },
    {
      "level": "warn",
      "code": "DISTRIBUTOR_NUMBERS",
      "message": "No digikey, mouser, lcsc part numbers on this component. Buyers and the parts widgets read component.distributor_links; a part with no numbers cannot be ordered from the page.",
      "action": "Add to package.json: \"component\": { \"distributor_links\": { \"mouser\": \"<Mouser part #>\", \"digikey\": \"<DigiKey part #>\", \"lcsc\": \"<LCSC C-number>\" } }. Use false for a distributor that genuinely does not carry the part (e.g. \"lcsc\": false) so the warning stops.",
      "data": {
        "missing": [
          "digikey",
          "mouser",
          "lcsc"
        ]
      }
    },
    {
      "level": "warn",
      "code": "LINT",
      "message": "component has no board/layout (.kicad_pcb or .brd): nobody can reproduce or re-fab the design from this page."
    },
    {
      "level": "warn",
      "code": "LINT",
      "message": "component has no schematic (.kicad_sch or .sch): the design can't be reviewed or reused, only the symbol/footprint can."
    },
    {
      "level": "warn",
      "code": "LINT",
      "message": "component has no footprint/symbol metadata (<name>_footprint.json / <name>_symbol.json): per-pad wire-attach data rides this, so importers can't place it programmatically."
    },
    {
      "level": "warn",
      "code": "LINT",
      "message": "DISTRIBUTOR_NUMBERS_REQUIRED: a new component page is refused at create/first publish with none of digikey, mouser, lcsc in component.distributor_links (missing: digikey, mouser, lcsc). Name at least one real number, a {part} object, or an explicit false per distributor not carrying the part (this page already exists, so the server grandfathers it as a warning; a NEW page would be refused)"
    },
    {
      "level": "warn",
      "code": "LINT",
      "message": "DEPS_UNDECLARED: 1 imported module(s) are not declared in dependencies: OCP. Declare each as an owner-qualified dependency (<owner>/<slug>) or remove the import. (Relative paths and built-ins are ignored; globally-provided modules may be false positives.)"
    },
    {
      "level": "info",
      "code": "MEDIA_EXCLUDED",
      "message": "kept 1 page-asset media file(s) (27 KB) out of the tarball: docs/hero.png",
      "action": "hero/screenshots/videos are page assets served from the page, not install payload; pass --include-media if a package genuinely needs one at runtime"
    },
    {
      "level": "info",
      "code": "PUBLISH_LAYERS",
      "message": "published the package layer (the install payload: manifest + scripts + bundled skills). The page git repo (Files tab) is a SEPARATE layer and is not synced by publish.",
      "action": "host source by pushing files into the page repo (never a source tarball); ship downloadable per-platform binaries with `adom-wiki release upload <ref> <ver> <file> --platform <os>`"
    }
  ]
}