{
  "schemaVersion": 1,
  "package": "@orintech/vectorci",
  "version": "0.5.0",
  "baseUrl": "https://davidgrijalva-orin.github.io/VectorCI/",
  "url": "https://davidgrijalva-orin.github.io/VectorCI/",
  "npmUrl": "https://www.npmjs.com/package/@orintech/vectorci",
  "topics": [
    {
      "slug": "install",
      "title": "Install VectorCI in a repository",
      "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/install/"
    },
    {
      "slug": "authentication",
      "title": "Authenticate with GitHub",
      "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/"
    },
    {
      "slug": "single-repository",
      "title": "Set up one repository",
      "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/"
    },
    {
      "slug": "multiple-repositories",
      "title": "Keep product repositories isolated",
      "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/"
    },
    {
      "slug": "agents",
      "title": "Give coding agents a safe VectorCI workflow",
      "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/"
    },
    {
      "slug": "configuration",
      "title": "Understand .vectorci.yml",
      "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/"
    },
    {
      "slug": "validation",
      "title": "Validate configuration and prove readiness",
      "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/"
    },
    {
      "slug": "security",
      "title": "Security model",
      "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/security/"
    }
  ],
  "documents": [
    {
      "schemaVersion": 1,
      "package": "@orintech/vectorci",
      "version": "0.5.0",
      "baseUrl": "https://davidgrijalva-orin.github.io/VectorCI/",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/install/",
      "npmUrl": "https://www.npmjs.com/package/@orintech/vectorci",
      "topics": [
        {
          "slug": "install",
          "title": "Install VectorCI in a repository",
          "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/install/"
        },
        {
          "slug": "authentication",
          "title": "Authenticate with GitHub",
          "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/"
        },
        {
          "slug": "single-repository",
          "title": "Set up one repository",
          "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/"
        },
        {
          "slug": "multiple-repositories",
          "title": "Keep product repositories isolated",
          "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/"
        },
        {
          "slug": "agents",
          "title": "Give coding agents a safe VectorCI workflow",
          "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/"
        },
        {
          "slug": "configuration",
          "title": "Understand .vectorci.yml",
          "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/"
        },
        {
          "slug": "validation",
          "title": "Validate configuration and prove readiness",
          "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/"
        },
        {
          "slug": "security",
          "title": "Security model",
          "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/security/"
        }
      ],
      "topic": {
        "slug": "install",
        "title": "Install VectorCI in a repository",
        "shortTitle": "Install",
        "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
        "audience": "everyone",
        "sections": [
          {
            "id": "requirements",
            "title": "Requirements",
            "paragraphs": [
              "VectorCI supports native macOS and Windows clients. Install Node.js 24, Git, and GitHub CLI before adding the package."
            ],
            "bullets": [
              "Node.js 24.x",
              "Git with an origin remote pointing to the target GitHub repository",
              "GitHub CLI (`gh`) for browser-based GitHub authentication",
              "A private, trusted GitHub repository"
            ]
          },
          {
            "id": "project-local",
            "title": "Recommended: install in the codebase",
            "paragraphs": [
              "A project-local development dependency records VectorCI in package.json and the lockfile. That gives users, CI, and agents one reproducible command surface without relying on a machine-wide installation."
            ],
            "codeBlocks": [
              {
                "label": "Install and start setup",
                "language": "bash",
                "code": "npm install --save-dev --save-exact @orintech/vectorci@0.5.0\nnpx vectorci auth login\nnpx vectorci setup ."
              }
            ],
            "callout": {
              "kind": "security",
              "title": "Pin what agents execute",
              "body": "`--save-exact` records the resolved release. Commit package.json and the lockfile, then use `npm ci --ignore-scripts` in automation before running `npx vectorci`."
            }
          },
          {
            "id": "package-scripts",
            "title": "Add repository commands",
            "paragraphs": [
              "Package scripts make the supported entry points obvious to contributors and coding agents."
            ],
            "codeBlocks": [
              {
                "label": "package.json",
                "language": "json",
                "code": "{\n  \"scripts\": {\n    \"vectorci:plan\": \"vectorci setup .\",\n    \"vectorci:doctor\": \"vectorci doctor .\",\n    \"vectorci:docs\": \"vectorci docs\"\n  }\n}"
              },
              {
                "label": "Run the pinned local CLI",
                "language": "bash",
                "code": "npm run vectorci:plan\nnpm run vectorci:doctor\nnpm run vectorci:docs"
              }
            ]
          },
          {
            "id": "alternatives",
            "title": "Global and one-off alternatives",
            "paragraphs": [
              "A global install is convenient for a workstation. A one-off command is useful for exploration, but a codebase dependency is the recommended shared setup."
            ],
            "codeBlocks": [
              {
                "label": "Global install",
                "language": "bash",
                "code": "npm install --global @orintech/vectorci@0.5.0\nvectorci docs --open"
              },
              {
                "label": "One-off run",
                "language": "bash",
                "code": "npx @orintech/vectorci@0.5.0 docs"
              }
            ]
          }
        ]
      },
      "markdown": "# Install VectorCI in a repository\n\nAdd the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.\n\nDocumentation: https://davidgrijalva-orin.github.io/VectorCI/install/\n\n## Requirements\n\nVectorCI supports native macOS and Windows clients. Install Node.js 24, Git, and GitHub CLI before adding the package.\n\n- Node.js 24.x\n- Git with an origin remote pointing to the target GitHub repository\n- GitHub CLI (`gh`) for browser-based GitHub authentication\n- A private, trusted GitHub repository\n\n## Recommended: install in the codebase\n\nA project-local development dependency records VectorCI in package.json and the lockfile. That gives users, CI, and agents one reproducible command surface without relying on a machine-wide installation.\n\n### Install and start setup\n\n```bash\nnpm install --save-dev --save-exact @orintech/vectorci@0.5.0\nnpx vectorci auth login\nnpx vectorci setup .\n```\n\n> **Pin what agents execute:** `--save-exact` records the resolved release. Commit package.json and the lockfile, then use `npm ci --ignore-scripts` in automation before running `npx vectorci`.\n\n## Add repository commands\n\nPackage scripts make the supported entry points obvious to contributors and coding agents.\n\n### package.json\n\n```json\n{\n  \"scripts\": {\n    \"vectorci:plan\": \"vectorci setup .\",\n    \"vectorci:doctor\": \"vectorci doctor .\",\n    \"vectorci:docs\": \"vectorci docs\"\n  }\n}\n```\n\n### Run the pinned local CLI\n\n```bash\nnpm run vectorci:plan\nnpm run vectorci:doctor\nnpm run vectorci:docs\n```\n\n## Global and one-off alternatives\n\nA global install is convenient for a workstation. A one-off command is useful for exploration, but a codebase dependency is the recommended shared setup.\n\n### Global install\n\n```bash\nnpm install --global @orintech/vectorci@0.5.0\nvectorci docs --open\n```\n\n### One-off run\n\n```bash\nnpx @orintech/vectorci@0.5.0 docs\n```\n"
    },
    {
      "schemaVersion": 1,
      "package": "@orintech/vectorci",
      "version": "0.5.0",
      "baseUrl": "https://davidgrijalva-orin.github.io/VectorCI/",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/",
      "npmUrl": "https://www.npmjs.com/package/@orintech/vectorci",
      "topics": [
        {
          "slug": "install",
          "title": "Install VectorCI in a repository",
          "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/install/"
        },
        {
          "slug": "authentication",
          "title": "Authenticate with GitHub",
          "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/"
        },
        {
          "slug": "single-repository",
          "title": "Set up one repository",
          "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/"
        },
        {
          "slug": "multiple-repositories",
          "title": "Keep product repositories isolated",
          "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/"
        },
        {
          "slug": "agents",
          "title": "Give coding agents a safe VectorCI workflow",
          "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/"
        },
        {
          "slug": "configuration",
          "title": "Understand .vectorci.yml",
          "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/"
        },
        {
          "slug": "validation",
          "title": "Validate configuration and prove readiness",
          "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/"
        },
        {
          "slug": "security",
          "title": "Security model",
          "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/security/"
        }
      ],
      "topic": {
        "slug": "authentication",
        "title": "Authenticate with GitHub",
        "shortTitle": "GitHub auth",
        "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
        "audience": "everyone",
        "sections": [
          {
            "id": "login",
            "title": "Sign in",
            "paragraphs": [
              "GitHub is the identity provider. VectorCI asks GitHub CLI to start its browser-based login flow, then reads only the authenticated account identity and repository metadata it needs for setup."
            ],
            "codeBlocks": [
              {
                "label": "Authenticate and check status",
                "language": "bash",
                "code": "npx vectorci auth login\nnpx vectorci auth status"
              }
            ],
            "callout": {
              "kind": "security",
              "title": "Never paste a token",
              "body": "The CLI does not request, return, or write GitHub tokens. Product agents must use a selected-repository GitHub identity that excludes VectorCI; auth status fails closed unless that denial is proved. Grant provider execution access only through the VectorCI GitHub App page."
            }
          },
          {
            "id": "app-access",
            "title": "Install the VectorCI GitHub App",
            "paragraphs": [
              "Setup can open the App installation page after a reviewed plan is applied. Select only the private repositories that should use VectorCI."
            ],
            "codeBlocks": [
              {
                "label": "Open App consent after apply",
                "language": "bash",
                "code": "npx vectorci setup . --apply --plan-digest <reviewed-sha256> --confirm WRITE_VECTORCI_CONFIG --open-app"
              }
            ]
          },
          {
            "id": "status-codes",
            "title": "Automation behavior",
            "bullets": [
              "Exit 0: authenticated and usable.",
              "Exit 3: action is required, such as signing in or completing setup.",
              "Exit 1: invalid input or a security boundary rejected the request.",
              "Exit 2: command usage is invalid."
            ]
          }
        ]
      },
      "markdown": "# Authenticate with GitHub\n\nUse GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.\n\nDocumentation: https://davidgrijalva-orin.github.io/VectorCI/authentication/\n\n## Sign in\n\nGitHub is the identity provider. VectorCI asks GitHub CLI to start its browser-based login flow, then reads only the authenticated account identity and repository metadata it needs for setup.\n\n### Authenticate and check status\n\n```bash\nnpx vectorci auth login\nnpx vectorci auth status\n```\n\n> **Never paste a token:** The CLI does not request, return, or write GitHub tokens. Product agents must use a selected-repository GitHub identity that excludes VectorCI; auth status fails closed unless that denial is proved. Grant provider execution access only through the VectorCI GitHub App page.\n\n## Install the VectorCI GitHub App\n\nSetup can open the App installation page after a reviewed plan is applied. Select only the private repositories that should use VectorCI.\n\n### Open App consent after apply\n\n```bash\nnpx vectorci setup . --apply --plan-digest <reviewed-sha256> --confirm WRITE_VECTORCI_CONFIG --open-app\n```\n\n## Automation behavior\n\n- Exit 0: authenticated and usable.\n- Exit 3: action is required, such as signing in or completing setup.\n- Exit 1: invalid input or a security boundary rejected the request.\n- Exit 2: command usage is invalid.\n"
    },
    {
      "schemaVersion": 1,
      "package": "@orintech/vectorci",
      "version": "0.5.0",
      "baseUrl": "https://davidgrijalva-orin.github.io/VectorCI/",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/",
      "npmUrl": "https://www.npmjs.com/package/@orintech/vectorci",
      "topics": [
        {
          "slug": "install",
          "title": "Install VectorCI in a repository",
          "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/install/"
        },
        {
          "slug": "authentication",
          "title": "Authenticate with GitHub",
          "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/"
        },
        {
          "slug": "single-repository",
          "title": "Set up one repository",
          "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/"
        },
        {
          "slug": "multiple-repositories",
          "title": "Keep product repositories isolated",
          "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/"
        },
        {
          "slug": "agents",
          "title": "Give coding agents a safe VectorCI workflow",
          "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/"
        },
        {
          "slug": "configuration",
          "title": "Understand .vectorci.yml",
          "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/"
        },
        {
          "slug": "validation",
          "title": "Validate configuration and prove readiness",
          "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/"
        },
        {
          "slug": "security",
          "title": "Security model",
          "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/security/"
        }
      ],
      "topic": {
        "slug": "single-repository",
        "title": "Set up one repository",
        "shortTitle": "One repository",
        "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
        "audience": "everyone",
        "sections": [
          {
            "id": "plan",
            "title": "1. Generate a read-only plan",
            "paragraphs": [
              "Run setup from the repository root. VectorCI verifies the Git root and origin, checks that the GitHub repository is private and accessible, and discovers bounded Node.js validation commands when possible."
            ],
            "codeBlocks": [
              {
                "label": "Plan",
                "language": "bash",
                "code": "npx vectorci setup ."
              }
            ],
            "callout": {
              "kind": "note",
              "title": "Planning never writes",
              "body": "The response includes the complete candidate configuration, blockers, warnings, next steps, and a SHA-256 `planDigest`."
            }
          },
          {
            "id": "review-apply",
            "title": "2. Review and apply the exact plan",
            "steps": [
              "Read every proposed command and capability.",
              "Resolve every blocker.",
              "Use the returned planDigest with the exact write confirmation."
            ],
            "codeBlocks": [
              {
                "label": "Apply",
                "language": "bash",
                "code": "npx vectorci setup . \\\n  --apply \\\n  --plan-digest <reviewed-sha256> \\\n  --confirm WRITE_VECTORCI_CONFIG \\\n  --open-app"
              }
            ],
            "callout": {
              "kind": "security",
              "title": "No overwrite path",
              "body": "Apply recomputes the plan and creates only a missing regular `.vectorci.yml`. Changed inputs, stale digests, symbolic links, existing files, or privileged capabilities are rejected."
            }
          },
          {
            "id": "prove",
            "title": "3. Commit, push, and prove the run",
            "paragraphs": [
              "Commit `.vectorci.yml` through the repository's normal protected workflow. After the default branch receives the file and the App-owned check finishes, run doctor."
            ],
            "codeBlocks": [
              {
                "label": "Read production proof",
                "language": "bash",
                "code": "npx vectorci doctor ."
              }
            ],
            "bullets": [
              "The GitHub session is valid.",
              "The local origin matches an accessible private repository.",
              "The local configuration is valid.",
              "The default branch contains the same configuration.",
              "The exact default-branch head has a successful VectorCI check owned by the VectorCI GitHub App."
            ]
          }
        ]
      },
      "markdown": "# Set up one repository\n\nPlan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.\n\nDocumentation: https://davidgrijalva-orin.github.io/VectorCI/single-repository/\n\n## 1. Generate a read-only plan\n\nRun setup from the repository root. VectorCI verifies the Git root and origin, checks that the GitHub repository is private and accessible, and discovers bounded Node.js validation commands when possible.\n\n### Plan\n\n```bash\nnpx vectorci setup .\n```\n\n> **Planning never writes:** The response includes the complete candidate configuration, blockers, warnings, next steps, and a SHA-256 `planDigest`.\n\n## 2. Review and apply the exact plan\n\n1. Read every proposed command and capability.\n2. Resolve every blocker.\n3. Use the returned planDigest with the exact write confirmation.\n\n### Apply\n\n```bash\nnpx vectorci setup . \\\n  --apply \\\n  --plan-digest <reviewed-sha256> \\\n  --confirm WRITE_VECTORCI_CONFIG \\\n  --open-app\n```\n\n> **No overwrite path:** Apply recomputes the plan and creates only a missing regular `.vectorci.yml`. Changed inputs, stale digests, symbolic links, existing files, or privileged capabilities are rejected.\n\n## 3. Commit, push, and prove the run\n\nCommit `.vectorci.yml` through the repository's normal protected workflow. After the default branch receives the file and the App-owned check finishes, run doctor.\n\n- The GitHub session is valid.\n- The local origin matches an accessible private repository.\n- The local configuration is valid.\n- The default branch contains the same configuration.\n- The exact default-branch head has a successful VectorCI check owned by the VectorCI GitHub App.\n\n### Read production proof\n\n```bash\nnpx vectorci doctor .\n```\n"
    },
    {
      "schemaVersion": 1,
      "package": "@orintech/vectorci",
      "version": "0.5.0",
      "baseUrl": "https://davidgrijalva-orin.github.io/VectorCI/",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/",
      "npmUrl": "https://www.npmjs.com/package/@orintech/vectorci",
      "topics": [
        {
          "slug": "install",
          "title": "Install VectorCI in a repository",
          "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/install/"
        },
        {
          "slug": "authentication",
          "title": "Authenticate with GitHub",
          "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/"
        },
        {
          "slug": "single-repository",
          "title": "Set up one repository",
          "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/"
        },
        {
          "slug": "multiple-repositories",
          "title": "Keep product repositories isolated",
          "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/"
        },
        {
          "slug": "agents",
          "title": "Give coding agents a safe VectorCI workflow",
          "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/"
        },
        {
          "slug": "configuration",
          "title": "Understand .vectorci.yml",
          "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/"
        },
        {
          "slug": "validation",
          "title": "Validate configuration and prove readiness",
          "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/"
        },
        {
          "slug": "security",
          "title": "Security model",
          "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/security/"
        }
      ],
      "topic": {
        "slug": "multiple-repositories",
        "title": "Keep product repositories isolated",
        "shortTitle": "Repository isolation",
        "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
        "audience": "everyone",
        "sections": [
          {
            "id": "one-process-one-repository",
            "title": "Use one process per repository",
            "paragraphs": [
              "Start the product agent and pinned CLI from the exact product Git root. The CLI refuses parent directories, sibling repositories, and the VectorCI provider source repository."
            ],
            "codeBlocks": [
              {
                "label": "Run independently inside each product",
                "language": "bash",
                "code": "cd /absolute/product-one\nnpx vectorci setup .\nnpx vectorci doctor .\n\ncd /absolute/product-two\nnpx vectorci setup .\nnpx vectorci doctor ."
              }
            ]
          },
          {
            "id": "identity",
            "title": "Use a product-scoped identity",
            "bullets": [
              "The product credential may access only its selected product repositories.",
              "The product credential must receive Not Found when it probes davidgrijalva-orin/VectorCI.",
              "The VectorCI GitHub App may post the provider-owned VectorCI check without giving the product agent provider-source permission.",
              "A separate owner profile is required for VectorCI source, releases, workers, and provider administration."
            ]
          },
          {
            "id": "allowed-surfaces",
            "title": "Allowed product surfaces",
            "bullets": [
              "The exact pinned `@orintech/vectorci` CLI release.",
              "Product-owned `.vectorci.yml` and public documentation.",
              "Provider-owned VectorCI status and Check Run output."
            ]
          }
        ]
      },
      "markdown": "# Keep product repositories isolated\n\nRun one pinned CLI inside each product repository without granting cross-repository access.\n\nDocumentation: https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/\n\n## Use one process per repository\n\nStart the product agent and pinned CLI from the exact product Git root. The CLI refuses parent directories, sibling repositories, and the VectorCI provider source repository.\n\n### Run independently inside each product\n\n```bash\ncd /absolute/product-one\nnpx vectorci setup .\nnpx vectorci doctor .\n\ncd /absolute/product-two\nnpx vectorci setup .\nnpx vectorci doctor .\n```\n\n## Use a product-scoped identity\n\n- The product credential may access only its selected product repositories.\n- The product credential must receive Not Found when it probes davidgrijalva-orin/VectorCI.\n- The VectorCI GitHub App may post the provider-owned VectorCI check without giving the product agent provider-source permission.\n- A separate owner profile is required for VectorCI source, releases, workers, and provider administration.\n\n## Allowed product surfaces\n\n- The exact pinned `@orintech/vectorci` CLI release.\n- Product-owned `.vectorci.yml` and public documentation.\n- Provider-owned VectorCI status and Check Run output.\n"
    },
    {
      "schemaVersion": 1,
      "package": "@orintech/vectorci",
      "version": "0.5.0",
      "baseUrl": "https://davidgrijalva-orin.github.io/VectorCI/",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/",
      "npmUrl": "https://www.npmjs.com/package/@orintech/vectorci",
      "topics": [
        {
          "slug": "install",
          "title": "Install VectorCI in a repository",
          "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/install/"
        },
        {
          "slug": "authentication",
          "title": "Authenticate with GitHub",
          "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/"
        },
        {
          "slug": "single-repository",
          "title": "Set up one repository",
          "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/"
        },
        {
          "slug": "multiple-repositories",
          "title": "Keep product repositories isolated",
          "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/"
        },
        {
          "slug": "agents",
          "title": "Give coding agents a safe VectorCI workflow",
          "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/"
        },
        {
          "slug": "configuration",
          "title": "Understand .vectorci.yml",
          "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/"
        },
        {
          "slug": "validation",
          "title": "Validate configuration and prove readiness",
          "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/"
        },
        {
          "slug": "security",
          "title": "Security model",
          "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/security/"
        }
      ],
      "topic": {
        "slug": "agents",
        "title": "Give coding agents a safe VectorCI workflow",
        "shortTitle": "Agents",
        "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
        "audience": "agents",
        "sections": [
          {
            "id": "repository-contract",
            "title": "Add an agent-facing repository contract",
            "paragraphs": [
              "Put a short VectorCI policy in `AGENTS.md` or the repository's equivalent instructions. Agents should inspect documentation and plan before requesting approval to apply."
            ],
            "codeBlocks": [
              {
                "label": "AGENTS.md example",
                "language": "text",
                "code": "## VectorCI\n\n- Install dependencies with `npm ci --ignore-scripts`.\n- Read `npx vectorci docs agents` before changing CI setup.\n- Use `npx vectorci setup .` for a read-only plan.\n- Never apply without showing the full candidate and planDigest to the user.\n- Apply only with the reviewed digest and `WRITE_VECTORCI_CONFIG` confirmation.\n- Use `npx vectorci doctor .` after the committed default-branch run finishes.\n- Provider feedback belongs in the approved shared support workflow, never in the VectorCI source repository.\n- Never list, clone, inspect, execute, or change the VectorCI provider source repository.\n- Never request, print, store, or commit GitHub or runner credentials."
              }
            ]
          },
          {
            "id": "agent-order",
            "title": "Agent execution order",
            "steps": [
              "Run `vectorci docs`.",
              "Check GitHub authentication without requesting credentials.",
              "Generate a setup plan and surface every blocker and proposed command.",
              "Pause for review before any apply command.",
              "Apply only the fresh digest with exact confirmation.",
              "Commit through the repository's normal protected process.",
              "Run doctor and report live proof separately from local validation.",
              "If provider work is needed, use the approved shared support workflow without accessing VectorCI source."
            ]
          },
          {
            "id": "machine-readable",
            "title": "Machine-readable documentation",
            "paragraphs": [
              "The Pages site publishes `llms.txt` for a complete agent-oriented guide and `docs.json` for the versioned topic catalog. The CLI embeds the same catalog, so documentation remains available even when browser access is unavailable."
            ]
          }
        ]
      },
      "markdown": "# Give coding agents a safe VectorCI workflow\n\nPin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.\n\nDocumentation: https://davidgrijalva-orin.github.io/VectorCI/agents/\n\n## Add an agent-facing repository contract\n\nPut a short VectorCI policy in `AGENTS.md` or the repository's equivalent instructions. Agents should inspect documentation and plan before requesting approval to apply.\n\n### AGENTS.md example\n\n```text\n## VectorCI\n\n- Install dependencies with `npm ci --ignore-scripts`.\n- Read `npx vectorci docs agents` before changing CI setup.\n- Use `npx vectorci setup .` for a read-only plan.\n- Never apply without showing the full candidate and planDigest to the user.\n- Apply only with the reviewed digest and `WRITE_VECTORCI_CONFIG` confirmation.\n- Use `npx vectorci doctor .` after the committed default-branch run finishes.\n- Provider feedback belongs in the approved shared support workflow, never in the VectorCI source repository.\n- Never list, clone, inspect, execute, or change the VectorCI provider source repository.\n- Never request, print, store, or commit GitHub or runner credentials.\n```\n\n## Agent execution order\n\n1. Run `vectorci docs`.\n2. Check GitHub authentication without requesting credentials.\n3. Generate a setup plan and surface every blocker and proposed command.\n4. Pause for review before any apply command.\n5. Apply only the fresh digest with exact confirmation.\n6. Commit through the repository's normal protected process.\n7. Run doctor and report live proof separately from local validation.\n8. If provider work is needed, use the approved shared support workflow without accessing VectorCI source.\n\n## Machine-readable documentation\n\nThe Pages site publishes `llms.txt` for a complete agent-oriented guide and `docs.json` for the versioned topic catalog. The CLI embeds the same catalog, so documentation remains available even when browser access is unavailable.\n"
    },
    {
      "schemaVersion": 1,
      "package": "@orintech/vectorci",
      "version": "0.5.0",
      "baseUrl": "https://davidgrijalva-orin.github.io/VectorCI/",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/",
      "npmUrl": "https://www.npmjs.com/package/@orintech/vectorci",
      "topics": [
        {
          "slug": "install",
          "title": "Install VectorCI in a repository",
          "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/install/"
        },
        {
          "slug": "authentication",
          "title": "Authenticate with GitHub",
          "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/"
        },
        {
          "slug": "single-repository",
          "title": "Set up one repository",
          "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/"
        },
        {
          "slug": "multiple-repositories",
          "title": "Keep product repositories isolated",
          "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/"
        },
        {
          "slug": "agents",
          "title": "Give coding agents a safe VectorCI workflow",
          "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/"
        },
        {
          "slug": "configuration",
          "title": "Understand .vectorci.yml",
          "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/"
        },
        {
          "slug": "validation",
          "title": "Validate configuration and prove readiness",
          "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/"
        },
        {
          "slug": "security",
          "title": "Security model",
          "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/security/"
        }
      ],
      "topic": {
        "slug": "configuration",
        "title": "Understand .vectorci.yml",
        "shortTitle": "Configuration",
        "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
        "audience": "everyone",
        "sections": [
          {
            "id": "minimal",
            "title": "Minimal configuration",
            "codeBlocks": [
              {
                "label": ".vectorci.yml",
                "language": "yaml",
                "code": "version: 1\n\njobs:\n  quality:\n    name: Quality\n    capability: linux-general\n    commands:\n      - npm ci --ignore-scripts\n      - npm test"
              }
            ],
            "paragraphs": [
              "The product repository declares what must run. VectorCI selects only capacity that proves the exact requested capability."
            ]
          },
          {
            "id": "capabilities",
            "title": "Choose exact capabilities",
            "bullets": [
              "`linux-general` for ordinary Node.js, Python, Java, C, and C++ validation.",
              "`linux-docker` when the job genuinely needs Docker or service containers.",
              "`windows-native` for Windows-specific builds and tests.",
              "`macos-native` or `apple-xcode` for Apple-specific validation.",
              "Narrow device, signing, UI, and deployment capabilities remain separate protected routes."
            ],
            "callout": {
              "kind": "warning",
              "title": "No platform substitution",
              "body": "A Linux pass is not Windows proof, an emulator is not physical-device proof, and ordinary validation capacity is not a signing or production-deployment boundary."
            }
          },
          {
            "id": "validate",
            "title": "Validate before committing",
            "codeBlocks": [
              {
                "label": "Contract validation",
                "language": "bash",
                "code": "npx vectorci validate ."
              }
            ]
          }
        ]
      },
      "markdown": "# Understand .vectorci.yml\n\nDeclare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.\n\nDocumentation: https://davidgrijalva-orin.github.io/VectorCI/configuration/\n\n## Minimal configuration\n\nThe product repository declares what must run. VectorCI selects only capacity that proves the exact requested capability.\n\n### .vectorci.yml\n\n```yaml\nversion: 1\n\njobs:\n  quality:\n    name: Quality\n    capability: linux-general\n    commands:\n      - npm ci --ignore-scripts\n      - npm test\n```\n\n## Choose exact capabilities\n\n- `linux-general` for ordinary Node.js, Python, Java, C, and C++ validation.\n- `linux-docker` when the job genuinely needs Docker or service containers.\n- `windows-native` for Windows-specific builds and tests.\n- `macos-native` or `apple-xcode` for Apple-specific validation.\n- Narrow device, signing, UI, and deployment capabilities remain separate protected routes.\n\n> **No platform substitution:** A Linux pass is not Windows proof, an emulator is not physical-device proof, and ordinary validation capacity is not a signing or production-deployment boundary.\n\n## Validate before committing\n\n### Contract validation\n\n```bash\nnpx vectorci validate .\n```\n"
    },
    {
      "schemaVersion": 1,
      "package": "@orintech/vectorci",
      "version": "0.5.0",
      "baseUrl": "https://davidgrijalva-orin.github.io/VectorCI/",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/",
      "npmUrl": "https://www.npmjs.com/package/@orintech/vectorci",
      "topics": [
        {
          "slug": "install",
          "title": "Install VectorCI in a repository",
          "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/install/"
        },
        {
          "slug": "authentication",
          "title": "Authenticate with GitHub",
          "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/"
        },
        {
          "slug": "single-repository",
          "title": "Set up one repository",
          "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/"
        },
        {
          "slug": "multiple-repositories",
          "title": "Keep product repositories isolated",
          "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/"
        },
        {
          "slug": "agents",
          "title": "Give coding agents a safe VectorCI workflow",
          "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/"
        },
        {
          "slug": "configuration",
          "title": "Understand .vectorci.yml",
          "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/"
        },
        {
          "slug": "validation",
          "title": "Validate configuration and prove readiness",
          "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/"
        },
        {
          "slug": "security",
          "title": "Security model",
          "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/security/"
        }
      ],
      "topic": {
        "slug": "validation",
        "title": "Validate configuration and prove readiness",
        "shortTitle": "Validation",
        "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
        "audience": "everyone",
        "sections": [
          {
            "id": "local",
            "title": "Contract and operational validation",
            "paragraphs": [
              "Validate without options parses `.vectorci.yml`, normalizes its job metadata, computes a digest, and reports local readiness blockers without contacting GitHub or claiming that capacity executed the job.",
              "Validate with `--require-ready` additionally runs the end-to-end doctor proof. It returns READY only when the same local configuration is on the exact GitHub default-branch head and that head has a successful provider-owned VectorCI result. Accepted single-host constraints remain visible under `limitations`."
            ],
            "codeBlocks": [
              {
                "label": "Validate",
                "language": "bash",
                "code": "npx vectorci validate .\nnpx vectorci validate . --require-ready"
              }
            ]
          },
          {
            "id": "doctor",
            "title": "End-to-end doctor",
            "paragraphs": [
              "Doctor reads GitHub state and returns READY only when the exact default-branch head has a successful provider-owned VectorCI result. It uses the App-owned Check Run when the credential can read Checks, otherwise it requires the separate provider status created by immutable App bot user id 313620140."
            ],
            "codeBlocks": [
              {
                "label": "Current product repository",
                "language": "bash",
                "code": "npx vectorci doctor ."
              }
            ]
          },
          {
            "id": "reporting",
            "title": "Report proof honestly",
            "steps": [
              "Identify the exact local and remote commit.",
              "Report local configuration validity separately.",
              "Report the proof source, provider identity, conclusion, and exact head SHA.",
              "For high-availability routes, call out missing capacity, secondary routes, warm spares, or failover evidence as blockers rather than hiding them behind a green local check.",
              "For an exact constrained single-host envelope, report the shared physical failure domain as a limitation and call same-host replacement recovery, never failover."
            ]
          }
        ]
      },
      "markdown": "# Validate configuration and prove readiness\n\nKeep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.\n\nDocumentation: https://davidgrijalva-orin.github.io/VectorCI/validation/\n\n## Contract and operational validation\n\nValidate without options parses `.vectorci.yml`, normalizes its job metadata, computes a digest, and reports local readiness blockers without contacting GitHub or claiming that capacity executed the job.\n\nValidate with `--require-ready` additionally runs the end-to-end doctor proof. It returns READY only when the same local configuration is on the exact GitHub default-branch head and that head has a successful provider-owned VectorCI result. Accepted single-host constraints remain visible under `limitations`.\n\n### Validate\n\n```bash\nnpx vectorci validate .\nnpx vectorci validate . --require-ready\n```\n\n## End-to-end doctor\n\nDoctor reads GitHub state and returns READY only when the exact default-branch head has a successful provider-owned VectorCI result. It uses the App-owned Check Run when the credential can read Checks, otherwise it requires the separate provider status created by immutable App bot user id 313620140.\n\n### Current product repository\n\n```bash\nnpx vectorci doctor .\n```\n\n## Report proof honestly\n\n1. Identify the exact local and remote commit.\n2. Report local configuration validity separately.\n3. Report the proof source, provider identity, conclusion, and exact head SHA.\n4. For high-availability routes, call out missing capacity, secondary routes, warm spares, or failover evidence as blockers rather than hiding them behind a green local check.\n5. For an exact constrained single-host envelope, report the shared physical failure domain as a limitation and call same-host replacement recovery, never failover.\n"
    },
    {
      "schemaVersion": 1,
      "package": "@orintech/vectorci",
      "version": "0.5.0",
      "baseUrl": "https://davidgrijalva-orin.github.io/VectorCI/",
      "url": "https://davidgrijalva-orin.github.io/VectorCI/security/",
      "npmUrl": "https://www.npmjs.com/package/@orintech/vectorci",
      "topics": [
        {
          "slug": "install",
          "title": "Install VectorCI in a repository",
          "summary": "Add the official VectorCI CLI so humans, package scripts, and agents use the same reviewed version.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/install/"
        },
        {
          "slug": "authentication",
          "title": "Authenticate with GitHub",
          "summary": "Use GitHub CLI web authentication and explicit GitHub App consent without copying tokens into VectorCI.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/authentication/"
        },
        {
          "slug": "single-repository",
          "title": "Set up one repository",
          "summary": "Plan a deterministic .vectorci.yml, review its digest, apply it once, and prove the exact default-branch run.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/single-repository/"
        },
        {
          "slug": "multiple-repositories",
          "title": "Keep product repositories isolated",
          "summary": "Run one pinned CLI inside each product repository without granting cross-repository access.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/multiple-repositories/"
        },
        {
          "slug": "agents",
          "title": "Give coding agents a safe VectorCI workflow",
          "summary": "Pin the CLI in the repository, tell agents which read-only commands to run first, and keep every write review-gated.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/agents/"
        },
        {
          "slug": "configuration",
          "title": "Understand .vectorci.yml",
          "summary": "Declare required capabilities and exact validation commands while VectorCI owns routing, credentials, cleanup, and check publication.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/configuration/"
        },
        {
          "slug": "validation",
          "title": "Validate configuration and prove readiness",
          "summary": "Keep local contract checks, GitHub identity, exact branch configuration, and live App-owned execution proof distinct.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/validation/"
        },
        {
          "slug": "security",
          "title": "Security model",
          "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
          "url": "https://davidgrijalva-orin.github.io/VectorCI/security/"
        }
      ],
      "topic": {
        "slug": "security",
        "title": "Security model",
        "shortTitle": "Security",
        "summary": "Use short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.",
        "audience": "everyone",
        "sections": [
          {
            "id": "identity",
            "title": "Identity and credentials",
            "bullets": [
              "Product agents use a selected-repository GitHub identity that excludes VectorCI.",
              "The VectorCI owner profile uses a separate owner-capable identity.",
              "The CLI never requests or returns token values.",
              "The GitHub App grants repository-scoped access.",
              "Workers receive job-scoped repository access only after signed admission."
            ]
          },
          {
            "id": "writes",
            "title": "Bounded setup writes",
            "bullets": [
              "Planning is read-only.",
              "Apply requires a freshly recomputed SHA-256 digest and exact confirmation.",
              "Only a missing regular `.vectorci.yml` may be created.",
              "Feedback submission creates only the exact digest-reviewed issue in the current product repository.",
              "Symbolic links, path escapes, parent or sibling repositories, provider source, overwrites, and public repositories are rejected."
            ]
          },
          {
            "id": "execution",
            "title": "Execution isolation",
            "bullets": [
              "Fork-originated code does not reach privileged or signing runners.",
              "Capabilities are routed exactly; a different operating system or device class is never equivalent proof.",
              "Signing and production deployment remain separate from pull-request validation.",
              "Ephemeral one-job workers are the default, with cleanup and terminal check publication required."
            ]
          },
          {
            "id": "package",
            "title": "Public package boundary",
            "paragraphs": [
              "The public npm package contains one standalone reviewed Node.js CLI bundle (`vectorci`), README, third-party notices, and package manifest. Runtime dependencies are bundled and the published manifest has no install-time dependencies. MCP servers, control-plane code, private registry and inventory implementation, source maps, credentials, and private filesystem paths are excluded."
            ],
            "callout": {
              "kind": "security",
              "title": "VectorCI-gated publishing",
              "body": "Documentation and npm releases require an exact protected-main App-owned VectorCI check while GitHub Actions remains disabled. npm publication uses one temporary web-authenticated CLI session and ends by logging that session out; no release credential is committed or stored in VectorCI."
            }
          }
        ]
      },
      "markdown": "# Security model\n\nUse short-lived GitHub identities, bounded filesystem writes, exact capability routing, and separate privileged release paths.\n\nDocumentation: https://davidgrijalva-orin.github.io/VectorCI/security/\n\n## Identity and credentials\n\n- Product agents use a selected-repository GitHub identity that excludes VectorCI.\n- The VectorCI owner profile uses a separate owner-capable identity.\n- The CLI never requests or returns token values.\n- The GitHub App grants repository-scoped access.\n- Workers receive job-scoped repository access only after signed admission.\n\n## Bounded setup writes\n\n- Planning is read-only.\n- Apply requires a freshly recomputed SHA-256 digest and exact confirmation.\n- Only a missing regular `.vectorci.yml` may be created.\n- Feedback submission creates only the exact digest-reviewed issue in the current product repository.\n- Symbolic links, path escapes, parent or sibling repositories, provider source, overwrites, and public repositories are rejected.\n\n## Execution isolation\n\n- Fork-originated code does not reach privileged or signing runners.\n- Capabilities are routed exactly; a different operating system or device class is never equivalent proof.\n- Signing and production deployment remain separate from pull-request validation.\n- Ephemeral one-job workers are the default, with cleanup and terminal check publication required.\n\n## Public package boundary\n\nThe public npm package contains one standalone reviewed Node.js CLI bundle (`vectorci`), README, third-party notices, and package manifest. Runtime dependencies are bundled and the published manifest has no install-time dependencies. MCP servers, control-plane code, private registry and inventory implementation, source maps, credentials, and private filesystem paths are excluded.\n\n> **VectorCI-gated publishing:** Documentation and npm releases require an exact protected-main App-owned VectorCI check while GitHub Actions remains disabled. npm publication uses one temporary web-authenticated CLI session and ends by logging that session out; no release credential is committed or stored in VectorCI.\n"
    }
  ]
}
