From 64f469cfce857253fb7a9f4e8f55e47e10776a4b Mon Sep 17 00:00:00 2001 From: AreChen Date: Wed, 10 Jun 2026 15:48:42 +0800 Subject: [PATCH] Keep external sync as script-managed automation Constraint: The maintainer wants periodic upstream sync handled by script logic rather than Gitea workflow automation. Rejected: Repository-owned Gitea Actions schedule | The remote Gitea runner setup is unnecessary for the current direction. Confidence: high Scope-risk: narrow Directive: Treat scripts/sync_external_plugins.ps1 as the synchronization entry point unless a new scheduler is explicitly requested. Tested: python scripts\\validate_marketplace.py; rg found no remaining Gitea Actions sync references. Not-tested: External scheduler/container execution. --- .gitea/workflows/sync-external-skills.yml | 46 ----------------------- README.md | 10 +---- scripts/validate_marketplace.py | 2 +- 3 files changed, 2 insertions(+), 56 deletions(-) delete mode 100644 .gitea/workflows/sync-external-skills.yml diff --git a/.gitea/workflows/sync-external-skills.yml b/.gitea/workflows/sync-external-skills.yml deleted file mode 100644 index 4ad1e8faf..000000000 --- a/.gitea/workflows/sync-external-skills.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Sync external skill plugins - -on: - workflow_dispatch: - schedule: - - cron: "17 3 * * *" - -permissions: - contents: write - -jobs: - sync: - runs-on: ubuntu-latest - steps: - - name: Checkout marketplace - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Sync external plugins - shell: pwsh - run: ./scripts/sync_external_plugins.ps1 - - - name: Validate marketplace - run: python scripts/validate_marketplace.py - - - name: Commit synced changes - shell: bash - run: | - if git diff --quiet; then - echo "No external plugin updates." - exit 0 - fi - - git config user.name "EAPIL Skill Sync" - git config user.email "skill-sync@users.noreply.git.playones.com" - git add .agents plugins/codex/plugins plugins/codex/.agents config/external-sources.lock.json - git commit -m "Sync external skill plugins" \ - -m "Constraint: Scheduled sync vendors configured third-party skill sources into Codex plugin layout." \ - -m "Rejected: Git submodules | Codex marketplace installs do not reliably recurse external submodules." \ - -m "Confidence: medium" \ - -m "Scope-risk: moderate" \ - -m "Directive: Review upstream license or structure changes before expanding adapters." \ - -m "Tested: scripts/sync_external_plugins.ps1; scripts/validate_marketplace.py." \ - -m "Not-tested: Manual plugin install in Codex UI." - git push diff --git a/README.md b/README.md index 67a625a1e..9ddf775cd 100644 --- a/README.md +++ b/README.md @@ -97,15 +97,7 @@ After sync, validate the marketplace: python scripts\validate_marketplace.py ``` -`.gitea/workflows/sync-external-skills.yml` is a scheduled workflow prototype for Git-side periodic sync. - -For a Docker-hosted Gitea instance, the workflow file alone is not enough. Gitea must have Actions enabled and an `act_runner` container registered before scheduled jobs will run. The runner that handles this repository should provide: - -- A label matching `runs-on: ubuntu-latest`, or adjust the workflow to your runner label. -- `git`, `python`, and `pwsh` in the job environment. -- Network access from the job container to GitHub for upstream skill repos and to the Gitea instance for checkout/push. - -If the Gitea server does not have Actions enabled, run the same sync command from a host cron job or a small maintenance container that checks out this repository, runs the sync script, validates, commits, and pushes changes. +Periodic sync should call the script directly from a maintenance process, cron job, or service container. Keep the scheduling layer outside this repository; the repository only defines source config, generated plugin output, and validation. ## Layout diff --git a/scripts/validate_marketplace.py b/scripts/validate_marketplace.py index 09f81e044..e8984763b 100644 --- a/scripts/validate_marketplace.py +++ b/scripts/validate_marketplace.py @@ -2,7 +2,7 @@ """Validate this repository's Codex marketplace layout. This is intentionally narrower than Codex's internal plugin validator. It checks -the structure this repo generates so scheduled sync jobs can fail before +the structure this repo generates so sync automation can fail before committing malformed marketplace data. """