跳到正文
cccskills
免费在 GitHub 公开

ipollowork-maintainable-code

Guide code changes in iPolloWork by reusing existing implementations, limiting new files and dependencies, and keeping responsibilities clear. Review runtime costs, run focused checks, and audit the final changes for duplication and maintainability issues.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Mandatory iPolloWork code-change gate for modern, minimal, performant, reuse-first implementation and clean repository ownership. Use whenever AI creates, edits, deletes, or refactors application code, server code, packages, scripts, tests, dependencies, schemas, routes, UI, or generated-file workflows. Reuse existing code before creating files, keep one source of truth, prevent parallel implementations and junk directories, justify every new file or dependency, and audit the current change before completion.

查看安装方法

适用场景

  • Checking for reusable code before implementing a feature
  • Removing duplicate implementations during refactoring
  • Reviewing the need for new files and dependencies
  • Checking performance and module responsibilities before completion

包含的文件(4)

  • SKILL.md10.5 KB
  • agents/openai.yaml307 B
  • references/repository-boundaries.md5.9 KB
  • scripts/audit-changes.mjs10.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

iPolloWork Maintainable Code

Treat this as the repository's single code-quality Skill. Implement changes with the smallest coherent diff, modern platform patterns, bounded runtime cost, and one clear owner. Search and reuse before creating anything.

Non-Negotiable Outcomes

  • Modern: use the current repository stack and supported platform APIs; do not add legacy wrappers or compatibility layers without a real supported consumer.
  • Minimal: solve the requested job with the fewest concepts, files, dependencies, states, and routes that remain clear.
  • Performant: keep network, database, filesystem, bundle, render, and memory work bounded; optimize measured or structurally obvious hot paths.
  • Reusable: extend compatible components, hooks, services, schemas, types, and utilities before creating parallel versions.
  • Owned: keep one source of truth and place behavior in the narrowest existing owner.
  • Clean: do not create convenience directories, one-off design notes, duplicate implementations, generated source artifacts, or abandoned replacement files.

Required Workflow

  1. Find the repository root. Read AGENTS.md, the owning package manifest, the real entrypoint, and nearby implementations.
  2. Read references/repository-boundaries.md before adding a file, directory, dependency, API, table, or cross-package import.
  3. Define a change budget before editing: intended behavior, owning module, expected files touched, and whether any new file, directory, dependency, route, table, or persistent state is truly required. Default every category to zero.
  4. Search before creating anything:
    • Search component names, visible labels, route names, event names, type names, and distinctive behavior with rg.
    • Search apps/app/src/components/ui, apps/app/src/components, the target domain, apps/server/src, packages/types, and packages/ui as relevant.
    • Inspect exports and call sites, not just filenames.
  5. State the reuse decision: reuse unchanged, extend compatibly, extract for real multiple consumers, or create as the last choice. For each new file or dependency, record why no existing owner can absorb the change.
  6. Implement locally. Remove the replaced path in the same change; do not leave old, new, v2, fallback, or dead compatibility copies behind.
  7. Add focused tests at the owning layer. Do not duplicate server business logic, contracts, state, or validation in the desktop app.
  8. Run the narrow package checks, inspect the complete diff, then run:
node .codex/skills/ipollowork-maintainable-code/scripts/audit-changes.mjs
  1. Resolve every error. Fix warnings or give a concrete ownership/performance reason for keeping the exception.

Creation Gate

  • Add a file only when it has a distinct owner and responsibility that would make an existing file less coherent. A long file alone is not a reason to split it.
  • Add a directory only for a real subsystem or package with multiple cohesive files and a stable owner. Never create a directory to hold one small feature, one handoff, one report, or one Markdown note.
  • Do not add a new top-level directory without explicit user approval and a repository-level architectural reason.
  • Do not create new, old, v2, copy, backup, temp, tmp, misc, notes, drafts, handoff, or tdd-summary paths to avoid integrating with the current owner.
  • Do not create a design, plan, QA, summary, or TODO Markdown file for each small feature. Update an existing durable document only when future maintainers need information that code, tests, types, or comments cannot express.
  • Add a dependency only when the platform, current dependency graph, and local utilities cannot meet the requirement cleanly. Account for bundle/runtime cost, maintenance, license, and existing transitive capability.
  • Do not create a generic abstraction for one caller. Extract only after two real consumers need meaningful shared behavior or centralization prevents contract/security drift.

Reuse Decision

SituationAction
Existing API/component/helper meets the needImport and reuse it
Existing implementation differs only by presentation or configurationAdd typed props/options without changing existing defaults
Two real call sites need the same non-trivial behaviorExtract to the nearest shared owner
Similar-looking code has different domain rules or is unlikely to be reusedKeep it local; do not force an abstraction
No compatible implementation exists after searchingCreate one in the narrowest correct owner

Do not copy a component and rename it, create *V2, *New, *Copy, or duplicate a helper to avoid understanding its API. Do not add a generic abstraction for a single trivial use.

Modernity And Simplicity

  • Use typed boundaries, functional React, explicit async/error states, semantic controls, and current repository primitives.
  • Avoid any, broad type assertions, duplicated derived state, prop-to-state mirroring, hidden global state, and fallback branches that types or control flow make impossible.
  • Prefer composition and typed options over copied components or mode-heavy forks. Preserve existing defaults when extending shared code.
  • Delete obsolete code, exports, dependencies, flags, tests, and documentation when their supported path is removed.
  • Keep compatibility only for a named active format, client, or migration window. Document the removal condition beside the boundary.

Performance Gate

  • Keep lists and APIs paginated and bounded. Select only needed fields and avoid N+1 queries, request loops, and repeated filesystem scans.
  • Keep React subscriptions narrow. Derive values instead of synchronizing copies, avoid effects for pure computation, and lazy-load genuinely heavy optional surfaces.
  • Do not add caching or memoization without a clear owner, invalidation rule, and demonstrated reuse or cost.
  • Do not move server-owned data or heavy processing into the browser. Keep network and filesystem work out of render paths and short transactions free of network calls.
  • For a hot or high-volume path, record the relevant measurement, query plan, bundle effect, or complexity argument. Do not claim a performance improvement from code shape alone.

Frontend Rules

  • Reuse primitive controls from apps/app/src/components/ui.
  • Put app-wide composed UI in apps/app/src/components.
  • Put feature-specific UI, hooks, state, and behavior in apps/app/src/react-app/domains/<domain>.
  • Move UI to packages/ui only when more than one application genuinely consumes it.
  • Keep domain internals private. Share a stable public API or move truly cross-domain logic to a neutral owner instead of deep-importing another domain.
  • Use server APIs for server-owned behavior. Never reproduce filesystem, persistence, authorization, or orchestration logic in the client.
  • Put cross-process request/response contracts in packages/types; do not maintain separate client and server copies.

Server And Generated Files

  • Add thin HTTP handlers to apps/server/src/routes; put reusable business behavior in the existing owning service/extension module.
  • Reuse path guards from apps/server/src/paths.ts, including safe workspace-relative normalization and root containment helpers.
  • Never construct user-controlled filesystem paths with unchecked path.join or string concatenation.
  • Runtime exports, uploads, captures, renders, audio, images, and generated HTML must not be written under apps/server/src or another source directory.
  • Preserve the current session layout: <workspace>/design/<session-id>/... for design/PPT/web sessions and <workspace>/video/<session-id>/... for video sessions.
  • Put artifact kinds such as assets, renders, audio, captures, and exports below the owning session directory when appropriate.
  • Centralize directory creation and path resolution in one owning service. Routes and UI should pass identifiers, not invent disk paths.

Platform And Repository Safety

  • Keep Electron lifecycle and native integration in apps/desktop; do not leak shell-specific behavior into app domains.
  • Keep headless runtime orchestration in apps/orchestrator; do not create a second orchestration path in the UI or server.
  • Keep OpenCode external. Use its supported API, SDK, CLI, plugin, and configuration surfaces; do not fork or silently modify its internals.
  • Keep names consistently iPolloWork and ipollowork; do not introduce alternate product spellings in code, paths, docs, or user-facing text.
  • Do not commit secrets, credentials, local caches, build output, generated runtime artifacts, or commercial-only code.

Verification By Risk

  • TypeScript or UI: run the owning package typecheck and focused tests.
  • Server or plugin: run focused unit tests and the relevant package test.
  • Build or runtime boundary: build the affected package and start the real development entrypoint.
  • Observable UI: verify the actual browser/Electron flow using the repository experience-proof rules in AGENTS.md.
  • Dependency or OpenCode change: record old/new versions and verify startup, configuration, and the affected loading path.
  • Database or high-volume query: verify migrations, constraints, rollback/rejection behavior, bounded results, and the relevant query plan when representative data exists.

Completion Standard

  • No existing reusable implementation was missed.
  • No unjustified file, directory, dependency, route, table, state store, or abstraction was added.
  • No client/server contract was duplicated.
  • No runtime artifact was added to a source tree.
  • New files have one clear owner and do not create a parallel architecture.
  • Runtime work is bounded and no obvious N+1, request loop, broad subscription, or heavy eager import was introduced.
  • Existing behavior remains the default when extending shared code.
  • Replaced code and stale documentation were removed instead of retained as alternate versions.
  • Focused tests, package checks, git diff --check, and the maintainability audit pass; any unverified runtime surface is stated explicitly.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Search the private research library in Acme Research and summarize relevant material. Include each returned document's title and source URL so readers can identify the sources and check the material behind the summary.

中文简介正在准备中。当前显示英语简介。

  • Searching a private research library by topic
  • Summarizing research material
  • Reviewing findings with document titles and source links
Devin-AXIS/iPolloWork70982026年10月18日 更新

Capture product screenshots for landing pages, newsletters, social posts, and presentations by operating the real app. Check page structure, image pixels, and visual appearance, then retake images with overlapping text, clipping, or other visible defects.

中文简介正在准备中。当前显示英语简介。

  • Capture app screenshots for landing pages or newsletters
  • Prepare screenshots at aspect ratios suited to social posts or slides
  • Retake screenshots with clipped text or unwanted panels
Devin-AXIS/iPolloWork70982026年10月18日 更新

Find the right official documentation before answering technical questions. It identifies the library and version, retrieves focused references and examples, and explains relevant APIs while separating documented behavior from inference.

中文简介正在准备中。当前显示英语简介。

  • Checking API usage for an installed library version
  • Finding official guidance before upgrading
  • Separating documented behavior from assumptions
Devin-AXIS/iPolloWork70982026年10月18日 更新

Implement or upgrade code using the project's exact dependency versions and matching Context7 documentation. Check available APIs, make the smallest compatible change, run package checks, and identify behavior that still needs verification in a running application.

中文简介正在准备中。当前显示英语简介。

  • Implementing features with APIs supported by installed versions
  • Checking migration guidance before upgrading dependencies
  • Finding supported alternatives to unavailable APIs
Devin-AXIS/iPolloWork70982026年10月18日 更新

Create an OpenCode plugin for iPolloWork with custom tools and hooks, which run code at specific events. The skill builds the TypeScript file and adds it to the configuration so it can load after a session restart.

中文简介正在准备中。当前显示英语简介。

  • Add custom tools to iPolloWork
  • Create tools for saving and listing notes
  • Run custom code before or after tool execution
Devin-AXIS/iPolloWork70982026年10月18日 更新

Launch a standalone Chrome browser in a Daytona sandbox and control it through CDP, a browser debugging connection. Use it to complete sign-in, OAuth authorization, and web administration flows, then verify the visible results.

中文简介正在准备中。当前显示英语简介。

  • Signing into Den Web in a standalone browser
  • Completing OAuth authorization pages
  • Configuring settings available only on the web
Devin-AXIS/iPolloWork70982026年10月18日 更新

查看 Devin-AXIS 的全部技能

报告此技能的问题