From a9830414c7eee3f1a533b22e8736f1f3489f3584 Mon Sep 17 00:00:00 2001
From: Dotta <34892728+cryppadotta@users.noreply.github.com>
Date: Mon, 12 Oct 2026 11:30:20 -0500
Subject: [PATCH] Preserve repository dependencies when importing GitHub skills
(#15731)
## Thinking Path
> - Paperclip is the open source app people use to manage AI agents for
work.
> - Its Skills library imports reusable instructions from GitHub.
> - Some skills depend on shared files and sibling skills outside their
folders.
> - Directory-only imports lose those dependencies.
> - This pull request keeps repository files together and lets users
select which skills appear in the library.
> - Agents receive the original files and paths through the existing
skill delivery system.
## Linked Issues or Issue Description
Refs #14713. Related: #13656.
**Current behavior**
GitHub imports copy independent skill directories. Shared scripts,
policies, helper skills, and credit files can be omitted. One
shared-file error can block every skill.
**Proposed behavior**
New imports keep repository files together at the scanned commit. Show
all skills with their folders and select every skill by default.
Collapse individual package files. Omit unsupported or oversized files
with a warning. Import available content without repair choices or an
extra confirmation. Keep warnings on the saved source.
**Reason and benefit**
Skills can read their shared repository files after Paperclip delivers
them to an agent. Original instructions stay unchanged. Users can
inspect included files and understand omissions before and after import.
## What Changed
- Store immutable company-scoped repository snapshots and associate them
with skill versions. Regenerate the migration after merging master.
- Preserve original bytes, binary encoding, and executable modes.
Shared-file changes version each usable selected skill. Pinned versions
retain their original files.
- Deliver a discovery wrapper with the original tree under
`.paperclip-repository/`. Preserve invocation policy when present. Fork
and create-from-existing retain repository files.
- Keep repository files together for new UI imports. Show every skill,
select all by default, and collapse package files. Remove the
packaging-mode menu. Keep the mobile import footer visible.
- Warn about symlinks, submodules, oversized files, missing references,
and invalid optional manifests. A malformed skill remains selected with
a Needs setup warning. Usable skills still publish, and its original
file remains repository support content. Source warnings persist through
refresh. Unsafe execution and secret-disclosure findings omit the
affected files before snapshot publication.
- Expose saved repository files in the installed skill viewer, including
binary encoding and executable flags. Reads use the immutable
company-scoped snapshot; relative instruction links resolve from their
original repository directory.
- Audit delivered inventories and derive trust from all repository
files. Accept evaluation prose while retaining dynamic-execution
findings. Read blobs in one bounded Git batch and check budgets before
reading support files. Imports never execute setup commands.
- Add scanner, database, delivery, UI, and browser regressions. Update
Storybooks, screenshots, and documentation.
## Verification
- 69 focused scanner, Git snapshot, delivery, and PostgreSQL lifecycle
tests passed. They cover partial imports, warning persistence, missing
references, binary files, executable modes, copies, pinned versions,
cancellation, company isolation, and batched Git reads.
- 110 import, skill-detail, selection-tree, saved-file link, and
Markdown renderer tests passed. A file-switch regression failed before
the resolver fix and passed afterward. Browser walkthroughs cover the
all-selected open tree, repository preview, non-blocking warnings,
missing references, setup problems, warning persistence, and mobile
layout.
- Full workspace typecheck and build passed. Runner E2E TypeScript
checks and design-token gates passed. The full serial local suite was
attempted and stopped after over an hour. The existing 40,000-file Git
streaming stress test failed after 303 seconds on macOS; the broad local
suite is not counted as passed. All 55 applicable PR checks passed on
the final commit, including the full sharded CI suite. Two optional
Storybook workflows were skipped; the five local Storybook walkthroughs
passed.
- On October 12, live campaigns imported the private Poteto repository
through the production GitHub Sources UI, selected architect and bro,
and invoked them with native Codex on local and Daytona. The source
connection was disabled before invocation. Independent filesystem
inspections matched every supported Git blob, size, and executable mode.
Both tasks completed and cleanup passed. Campaigns:
`local-2026-10-12T15-07-39-504Z` (both environments),
`local-2026-10-12T16-08-39-682Z` (local), and
`local-2026-10-12T16-03-33-938Z` (Daytona). Each of the two selected
skills received all 234 supported repository files. Later changes only
affect the installed-file viewer and documentation. This qualifies skill
delivery and instruction reads, not every Poteto workflow or adapter.
- A manual source-checkout test drive imported a synthetic private
GitHub repository with a symlink, an oversized file, a missing
reference, and malformed skill metadata. Available skills published with
their shared checklist. The walkthrough found duplicate warning text
after import; the final UI fix removes that duplicate. The file viewer
exposes saved repository dependencies and resolves authored relative
links without changing the instructions. A follow-up live refresh
omitted unsafe helper files with warnings, preserved every safe file
byte, and survived a server restart.
Screenshots below use the production UI with Storybook fixtures. They do
not replace the live GitHub and runtime checks.
All skills visible and selected by default

Import stays available with warnings

Repository file inspector

Mobile import

## Risks
- Each selected skill carries a repository copy in the runtime. The
database stores each snapshot once. Runtime transfer and storage
increase with the number of assigned skills.
- Runtime budgets remain: 9,990 repository entries, 1 MiB per file, and
61 MiB total. File omissions are recorded as warnings. Source-access or
download failures retain installed versions.
- Import success does not prove that every skill can run. Environment
dependencies, credentials, delegation tools, and schedules still need
configuration. Imported setup scripts are not executed.
- Live runtime coverage is native Codex on local and Daytona. Other
adapters use the shared delivery path but were not exercised in these
campaigns.
The roadmap marks Skills Manager as shipped. This extends the existing
importer. Related pull requests were checked.
## Model Used
OpenAI Codex, based on GPT-6, with repository inspection, code
execution, automated tests, and browser tools. The exact deployment
identifier and context-window size were not exposed in this session.
## Checklist
- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [ ] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] All Paperclip CI gates are green
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge
---
.gitignore | 1 +
doc/SPEC-implementation.md | 23 +-
doc/SPEC.md | 10 +-
.../2026-10-09-repository-skill-packages.md | 29 +
docs/guides/agent-developer/skills-store.md | 84 +-
docs/pr-screenshots/pr-15731/README.md | 7 +
.../pr-15731/repository-files.png | Bin 0 -> 75283 bytes
.../pr-15731/repository-import.png | Bin 0 -> 92505 bytes
.../pr-15731/repository-missing-file.png | Bin 0 -> 100982 bytes
.../pr-15731/repository-mobile.png | Bin 0 -> 36607 bytes
.../pr-15731/repository-needs-setup.png | Bin 0 -> 96654 bytes
.../pr-15731/repository-warning-details.png | Bin 0 -> 99057 bytes
.../pr-15731/repository-warnings.png | Bin 0 -> 94476 bytes
.../src/migrations/0334_rare_slipstream.sql | 15 +
...{0323_snapshot.json => 0334_snapshot.json} | 1886 ++++++++++++++++-
packages/db/src/migrations/meta/_journal.json | 7 +
.../db/src/schema/company_skill_sources.ts | 4 +-
packages/db/src/schema/company_skills.ts | 11 +
packages/db/src/schema/index.ts | 2 +-
packages/shared/src/types/company-skill.ts | 2 +
packages/shared/src/types/skill-source.ts | 16 +
.../shared/src/validators/skill-source.ts | 2 +
.../src/__tests__/github-skill-source.test.ts | 111 +-
.../skill-repository-package.test.ts | 44 +
.../skill-source-git-snapshot.test.ts | 66 +-
server/src/__tests__/skill-sources.test.ts | 125 +-
server/src/services/company-skills.ts | 85 +-
server/src/services/github-skill-source.ts | 93 +-
.../src/services/skill-repository-package.ts | 50 +
.../src/services/skill-source-git-snapshot.ts | 45 +-
server/src/services/skill-sources.ts | 49 +-
tests/runner-e2e/README.md | 35 +
tests/runner-e2e/api.ts | 4 +-
tests/runner-e2e/catalog.test.ts | 19 +-
tests/runner-e2e/catalog.ts | 13 +
tests/runner-e2e/launch.ts | 2 +-
tests/runner-e2e/live-fixtures.ts | 2 +-
tests/runner-e2e/pi-controls-evidence.test.ts | 8 +-
tests/runner-e2e/playwright.config.ts | 3 +-
.../repository-skill-evidence.test.ts | 69 +
tests/runner-e2e/repository-skill-evidence.ts | 88 +
tests/runner-e2e/repository-skills.ts | 169 ++
tests/runner-e2e/runner.spec.ts | 15 +-
tests/runner-e2e/support.test.ts | 4 +
tests/runner-e2e/types.ts | 3 +
.../repository-skill-packages.config.ts | 16 +
.../repository-skill-packages.spec.ts | 101 +
.../components/MarkdownBody.rerender.test.tsx | 22 +-
ui/src/components/MarkdownBody.tsx | 13 +-
ui/src/lib/skill-file-links.test.ts | 24 +
ui/src/lib/skill-file-links.ts | 18 +
ui/src/pages/CompanySkills.tsx | 16 +-
ui/src/pages/SkillSources.test.tsx | 58 +-
ui/src/pages/SkillSources.tsx | 72 +-
ui/src/pages/skills/SkillImportWarnings.tsx | 24 +
ui/src/pages/skills/SkillPackagePreview.tsx | 35 +-
ui/src/pages/skills/SkillSourceTree.tsx | 11 +-
ui/storybook/fixtures/githubSkillSources.ts | 45 +-
.../stories/github-skills-journey.stories.tsx | 21 +-
.../repository-skill-packages/README.md | 11 +
.../repository-skill-packages.stories.tsx | 27 +
61 files changed, 3527 insertions(+), 188 deletions(-)
create mode 100644 doc/plans/2026-10-09-repository-skill-packages.md
create mode 100644 docs/pr-screenshots/pr-15731/README.md
create mode 100644 docs/pr-screenshots/pr-15731/repository-files.png
create mode 100644 docs/pr-screenshots/pr-15731/repository-import.png
create mode 100644 docs/pr-screenshots/pr-15731/repository-missing-file.png
create mode 100644 docs/pr-screenshots/pr-15731/repository-mobile.png
create mode 100644 docs/pr-screenshots/pr-15731/repository-needs-setup.png
create mode 100644 docs/pr-screenshots/pr-15731/repository-warning-details.png
create mode 100644 docs/pr-screenshots/pr-15731/repository-warnings.png
create mode 100644 packages/db/src/migrations/0334_rare_slipstream.sql
rename packages/db/src/migrations/meta/{0323_snapshot.json => 0334_snapshot.json} (96%)
create mode 100644 server/src/__tests__/skill-repository-package.test.ts
create mode 100644 server/src/services/skill-repository-package.ts
create mode 100644 tests/runner-e2e/repository-skill-evidence.test.ts
create mode 100644 tests/runner-e2e/repository-skill-evidence.ts
create mode 100644 tests/runner-e2e/repository-skills.ts
create mode 100644 tests/storybook-visual/repository-skill-packages.config.ts
create mode 100644 tests/storybook-visual/repository-skill-packages.spec.ts
create mode 100644 ui/src/lib/skill-file-links.test.ts
create mode 100644 ui/src/lib/skill-file-links.ts
create mode 100644 ui/src/pages/skills/SkillImportWarnings.tsx
create mode 100644 ui/storybook/stories/repository-skill-packages/README.md
create mode 100644 ui/storybook/stories/repository-skill-packages/repository-skill-packages.stories.tsx
diff --git a/.gitignore b/.gitignore
index 84396923f1f..20034f04bcb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,6 +71,7 @@ tests/storybook-visual/.cache/
tests/storybook-visual/.snapshots/
tests/storybook-visual/baseline-review/
tests/storybook-visual/test-results/
+tests/storybook-visual/repository-skill-results/
tests/storybook-visual/playwright-report/
.superset/
.superpowers/
diff --git a/doc/SPEC-implementation.md b/doc/SPEC-implementation.md
index 02f459214c4..00d0ac8b5b5 100644
--- a/doc/SPEC-implementation.md
+++ b/doc/SPEC-implementation.md
@@ -2042,7 +2042,28 @@ unavailable. Preserve current ownership and newer-work fences. See
and declared `compatibility` requirements with source entries. Preview reads reauthorize
the current caller and audit the requested package at the scanned immutable commit;
discovery and source metadata contain no file contents. Reference checks are advisory,
- do not establish complete runtime dependencies, and never expand package boundaries.
+ do not establish complete runtime dependencies, and never expand package boundaries automatically.
+- New UI imports use `packageMode: repository` to preserve supported repository files
+ in one company-scoped immutable snapshot. Selected entrypoints become library skills;
+ other skills remain supporting files. The root `paperclip.skills.json` may declare
+ version 1, validated `skills` paths and `requirements` text. Invalid manifests fall
+ back to discovery. The dialog shows every skill and containing folder, selects all
+ discovered skills, and collapses package files. There is no import-mode chooser;
+ existing directory-mode sources and API callers remain compatible.
+ Unsupported links, oversized files and files rejected for unsafe execution or
+ secret disclosure are omitted with persistent warnings. Malformed entrypoints
+ stay selected with Needs setup warnings; usable selected skills still publish.
+ Limits are 9,990 repository entries, 1 MiB per file and 61 MiB total. The dialog
+ exposes included files and setup requirements without repair choices or another
+ confirmation. Installed file views read saved repository bytes and resolve links
+ from each instruction file's original directory.
+- Each repository-backed version references its snapshot and original entrypoint path.
+ Runtime materialization adds a discovery wrapper and preserves the original tree under
+ `.paperclip-repository/`, including binaries, modes and credits. Original instructions
+ are unchanged. `agents/openai.yaml` discovery policy is retained beside the wrapper.
+ Existing adapters carry self-contained copies, so multiple entrypoints may duplicate
+ runtime bytes. Shared-file changes version all selected skills; pinned runs remain
+ on their snapshot. Importing does not install dependencies or configure host tools.
- Stage and audit complete packages before publishing. Scripts are allowed through
the existing content audit and never run on import. Persist binary bytes and executable
flags in immutable version inventories (legacy entries default to UTF-8/non-executable).
diff --git a/doc/SPEC.md b/doc/SPEC.md
index 946bea9ecb4..6df1dbb2337 100644
--- a/doc/SPEC.md
+++ b/doc/SPEC.md
@@ -715,7 +715,15 @@ A source tracks repository identity, branch, selected paths, and installed commi
an existing GitHub connection supplies caller-authorized reads. Manual refresh publishes
complete local immutable versions, preserving skill identity and assignments. Selection
operates on whole skill packages, with inspectable included files, declared runtime
-requirements, and advisory warnings for missing or external references. New
+requirements, and advisory warnings for missing or external references. A repository
+package retains supported source files while the user selects which skill entrypoints
+appear in the library. Authored content remains unchanged and shared files travel to
+the runtime. A declarative manifest can suggest public entrypoints and setup requirements;
+new imports keep repository files together and select all discovered skills. Missing
+references, setup problems and omitted files produce persistent warnings. Files rejected
+for unsafe execution or secret disclosure are excluded without blocking other files.
+The installed file viewer exposes saved repository dependencies. Importing never runs
+setup or configures host tools. New
upstream skills require reviewed selection; removed or deselected skills remain
installed. Editing starts with an independent copy. Write-back and PR publication
are a later milestone; exact path and commit provenance provide their base.
diff --git a/doc/plans/2026-10-09-repository-skill-packages.md b/doc/plans/2026-10-09-repository-skill-packages.md
new file mode 100644
index 00000000000..77ef830edeb
--- /dev/null
+++ b/doc/plans/2026-10-09-repository-skill-packages.md
@@ -0,0 +1,29 @@
+# Repository skill packages
+
+Outcome: GitHub imports can preserve a complete repository while independently selecting library entrypoints. Original authored files remain unchanged. Existing skill-directory sources remain supported; new imports keep repository files together. Imports do not execute setup scripts.
+
+Branch: `codex/skill-repository-packages`, based on `origin/master` at `7333e4eba8`.
+
+Acceptance: evaluation prose is accepted; dynamic execution checks remain; repository snapshots preserve shared references, binaries, executable files and credits through runtime copying; shared-file updates produce coherent pinned versions; shared-file problems are disclosed without blocking the package; the existing import dialog explains selection, files and requirements and supports inspecting both.
+
+Implementation: one immutable, company-scoped repository snapshot is referenced by each imported skill version. Runtime projections contain a generated discovery entrypoint and the untouched tree under `.paperclip-repository/`, so all existing adapters carry the dependencies without introducing host-only symlinks. Projections may duplicate package files for multiple enabled entrypoints; the database stores each package once. Optional `paperclip.skills.json` declares version 1, public `skills` entrypoint paths and `requirements` text. It never runs installation commands.
+
+Verification: 55 focused scanner, delivery and UI tests pass. The full workspace typecheck, full build, and direct server/UI TypeScript checks pass. Design-token gates pass. Scanning the pinned example distribution accepts all 62 skills without changing their text. A real Codex discovery probe exposes only the selected entrypoint while retaining the complete repository as supporting files.
+
+Follow-up verification: all 12 PostgreSQL lifecycle tests pass, including company deletion and both copy APIs. The alternate create-from-existing API copies the complete runtime projection and preserves its discovery wrapper. All 163 focused runner evidence, ownership, catalog and isolation tests pass, as does the runner E2E TypeScript check. The final full workspace build and typecheck pass.
+
+Live qualification: the opt-in `repository-skills` suite imports the private Poteto repository through the production Sources UI, selects and assigns architect and bro, disables the source connection, then invokes those skills. Independent inspections of both delivered packages match all 234 Git blobs, sizes and executable modes at commit 37d2ddde97aaef8017ccef811e682948f421062d. Native Codex tasks complete successfully on local and Daytona. Both qualifying results have complete evidence, no credential leaks and successful resource cleanup. No test manually stages the skill repository. Local campaign: local-2026-10-09T22-27-38-635Z. Daytona campaign: local-2026-10-09T22-16-10-814Z.
+
+The location oracle recognizes both provider-home copies and the immutable bundles supplied in the active runtime context. Local ownership includes the company, agent, workspace and session from the persisted, validated execution binding. Daytona ownership includes the active company/agent/task/run sandbox lease and its native-session directory. Earlier harness failures from missing report artifacts and incorrect location checks were corrected and rerun.
+
+The first broad test attempt was stopped when PostgreSQL-dependent suites skipped on the exhausted host. The new full `pnpm test:run` was stopped after seven failures across six test files unchanged by this PR (native session recovery, agent conversations, workspace runtime exposure, workspace dispatch, connection removal, and skill utility locking), plus 21 skipped connection-intent database cases. The recovery assertion reproduces in isolation; the failing test files are unchanged from the starting commit and the recovery fixture omits skill runtime context. The broad suite remains incomplete and is not counted as passed. Live qualification verifies import, delivery and instruction access, not every Poteto workflow or adapter.
+
+Review: [PR #15731](https://github.com/paperclipai/paperclip/pull/15731). The branch is based on master and has no unrelated checkout changes.
+
+## October 12: import warnings
+
+The importer saves available repository files without asking for repair decisions. Unsupported links and oversized files are omitted with persistent path-specific warnings. Missing references remain visible on the source; repository imports include shared files automatically. An invalid optional manifest falls back to discovered entrypoints. A skill that cannot be registered remains selected with a Needs setup warning; its original bytes still travel as repository support content for usable entrypoints. Content audits remain available, and import never executes setup commands.
+
+The production dialog shows every skill by default, selects all discovered skills, and collapses individual package files. It uses one collapsed warnings disclosure and leaves Import repository available. The importer has no packaging option: new imports keep repository files together. Storybook covers omitted files, warning details, missing references, setup problems, warnings after import, and mobile review. Focused scanner/delivery/PostgreSQL tests and UI tests verify saved warnings and available bytes; browser fixtures exercise the production UI. This revision has not rerun the paid local/Daytona campaigns above.
+
+Final acceptance also found and fixed duplicate saved warnings and an installed-file viewer that did not expose repository dependencies. The viewer now lists repository files and reads their saved bytes without GitHub access. Content errors for unsafe execution or secret disclosure omit the affected files with warnings; the remaining repository can still import. Database and scanner regressions verify these exclusions and file-reader company isolation.
diff --git a/docs/guides/agent-developer/skills-store.md b/docs/guides/agent-developer/skills-store.md
index 3d281358c32..ac537a8a0d8 100644
--- a/docs/guides/agent-developer/skills-store.md
+++ b/docs/guides/agent-developer/skills-store.md
@@ -135,12 +135,13 @@ opens the standard setup in Apps. Completing or cancelling setup returns you to
the importer with your draft retained; the repository list refreshes automatically.
Use the refresh button beside the repository count to reload accessible repositories.
-The searchable tree starts with every discovered skill package checked, including
-hidden and deeply nested directories. Each package shows its name and file count;
-expand it to see the files included with it. Folder checkboxes select descendant
-packages. A package checkbox selects that whole directory, stopping at nested
-`SKILL.md` boundaries; nested skills remain independently selectable. Supporting
-files cannot be deselected individually.
+New imports keep repository files together. **View files** opens the included
+repository inventory. The skill tree stays open, with every discovered skill
+selected. Containing folders start expanded; individual package files start
+collapsed. Folder checkboxes select descendant skills. Uncheck skills that should
+not appear in the library; their files still accompany the selected skills as
+repository support content. Supporting files cannot be deselected individually.
+Existing sources retain their saved import mode.
Use the inspection button or click an included file to open a read-only preview.
The inspector shows the repository path, scanned commit, byte sizes, executable
@@ -150,22 +151,63 @@ download. Preview reads use the current caller's GitHub access and re-audit the
package at that exact commit. Preview failures do not alter selection or installed
content. Existing sources gain inspection metadata on their next successful refresh.
-**Check references** flags detectable Markdown links and inline-code relative
-resource paths that are missing or outside the package, including files belonging to
-nested skills. This is a best-effort check, not a complete dependency analysis;
-references do not cause external files to be imported automatically. Fix the source
-or leave the package unchecked if it needs those files. Declared requirements are
-shown separately from these warnings and from content-audit notices.
+Shared files present in the repository are included automatically. Missing
+references, omitted files, and setup problems appear in one expandable warnings
+list. The same warnings remain on the saved source after import and refresh.
+Reference detection is a best-effort check, not a complete dependency analysis.
+Declared runtime requirements appear in the file inspector.
-Validation errors appear beside affected skills; eligible selections import and
-skipped skills are reported. These skills become available in the current company's
-library and agent skill picker. Files are limited to 1 MiB each and a scan to 100 MiB
-of expanded skill content, counting repeated file copies. A scan supports up to
-1,000 skill packages and 10,000 package files. The repository path index includes
-directories and is limited to 100,000 paths, with paths up to 4,096 characters and
-64 levels deep. Discovery retains audited manifests without retaining every
-package's contents. Importing never runs scripts, hooks, dependency installation,
-or builds.
+Warnings do not require a repair choice or confirmation. Import saves available
+content and registers usable selected skills. A malformed entrypoint stays
+selected with a **Needs setup** warning; its supported original files remain
+repository content. Unsupported links, oversized files, and files rejected by
+execution or secret-disclosure checks are omitted with path-specific warnings.
+Importing never runs scripts, hooks, dependency installation, or builds.
+
+Scans support up to 1,000 skill packages and 10,000 package files, counting repeated
+file copies, with a 100 MiB scan budget. The repository path index supports up to
+100,000 paths, each at most 4,096 characters and 64 levels deep. Discovery returns
+manifests without retaining every package's content.
+
+### Keep repository files together
+
+This is the default for new imports, including skills that share agents, scripts,
+policies, or sibling skills.
+Paperclip saves supported repository files at the scanned commit. The skill checkboxes
+control which entrypoints appear in the company library; unselected helper skills
+remain available as supporting files. Add the imported skills to an agent to use
+that repository in its runtime. **View files** shows exactly what
+will be copied, including root license and credit files.
+
+Repository packages support regular files up to 1 MiB each, 9,990 files, and
+61 MiB of content. Omitted files produce warnings; they do not block the remaining
+repository. Source-access or download failures retain
+all previously installed versions. Changes to shared files create a new version
+for each selected entrypoint; pinned versions retain their original repository.
+
+Authors can optionally add `paperclip.skills.json` at the repository root:
+
+```json
+{
+ "version": 1,
+ "skills": ["skills/review/SKILL.md", "skills/research/SKILL.md"],
+ "requirements": "Requires Python 3.11, Git, and GitHub access for code reviews."
+}
+```
+
+The listed paths must identify existing skill entrypoints. They do not change the
+all-selected import default, remove other files, or prevent users from selecting
+other entrypoints. The manifest only supplies
+declarative metadata: it never runs setup commands. Dependencies, credentials,
+subagent tools, and scheduled jobs still need to be configured in the agent's environment.
+
+At runtime, each selected skill contains a generated discovery `SKILL.md` that
+points to the untouched original in `.paperclip-repository/`. Relative references
+resolve from that original directory. Original file bytes and executable flags
+are preserved; discovery policy in `agents/openai.yaml` is also copied beside the
+entrypoint. Existing adapters copy this self-contained package to their runtime.
+Multiple enabled entrypoints currently repeat the repository files in the runtime,
+while the company database stores each immutable repository snapshot once.
Repeated scans resolve the branch's current commit and reuse the caller's cached
snapshot when it is unchanged. Each server process allows one active scan per
diff --git a/docs/pr-screenshots/pr-15731/README.md b/docs/pr-screenshots/pr-15731/README.md
new file mode 100644
index 00000000000..dc8dac0bb37
--- /dev/null
+++ b/docs/pr-screenshots/pr-15731/README.md
@@ -0,0 +1,7 @@
+# GitHub repository import UI
+
+Production Skills UI in Storybook, captured on October 12, 2026. API responses are fixtures; these images do not establish a live GitHub import or sandbox delivery.
+
+Desktop: 1280 × 900. Mobile: 375 × 812.
+
+Reproduce with the repository-skill-packages Playwright configuration against a running Storybook. The tests cover the always-visible skill list, all-selected defaults, repository-file preview, warnings without import blocking, warning persistence, missing references, setup problems, and the mobile footer. There is no packaging-mode menu.
diff --git a/docs/pr-screenshots/pr-15731/repository-files.png b/docs/pr-screenshots/pr-15731/repository-files.png
new file mode 100644
index 0000000000000000000000000000000000000000..31685c14c448fe31d19fb4f4e101c75f7a542f75
GIT binary patch
literal 75283
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%0A8y_~$6%Q!ICpHYRlQ=jo^SZ{y
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