Skip to content

chore: migrate APG product identity to RepoKeel #22

Description

@jayjcc8-cloud

Tracking ID: REPOKEEL-IDENTITY-MIGRATION-001

Product identity

PRODUCT_NAME=RepoKeel
PRODUCT_SLUG=repokeel
CATEGORY=Persistent project state for AI coding agents.
CORE_PROMISE=Preserve the state of the work, not the state of the conversation.
FORMER_NAME=Agent Project Governance
FORMER_ABBREVIATION=APG

APC is retired and must not be introduced.

Release-line decision

  • v0.4.x and earlier permanently remain the Agent Project Governance historical line.
  • The unreleased v0.5.0 candidate becomes the first RepoKeel prerelease.
  • agent-project-governance to repokeel is an explicit v0.x breaking plugin-identity migration, not an automatic in-place upgrade.
  • Completing this issue must not create a tag or release. Release requires separate authorization.

Migration matrix

Surface Target
Public brand RepoKeel
Former brand Agent Project Governance
Repository jayjcc8-cloud/repokeel
Plugin manifest name repokeel
Plugin display name RepoKeel
Marketplace name and plugin entry repokeel
Release ZIP repokeel-v0.5.0.zip
Checksum repokeel-v0.5.0.zip.sha256
ZIP root repokeel/
Future CLI namespace repokeel
Existing Skill IDs preserve
.agent-runtime preserve
Existing schema and runtime protocol IDs preserve
APG V1 markers and historical evidence preserve
Historical v0.3.x and v0.4.x releases preserve

Compatibility boundary

Brand identity changes. Stored project state does not.

The migration must preserve existing runtime behavior and formats, including:

  • agent-project-governance.workspace-snapshot.v1 and other persisted schema IDs;
  • .agent-runtime and existing work-unit formats;
  • authority digest semantics;
  • APG_* historical evidence markers;
  • the existing Skill IDs context-governance, project-bootstrap, eng-task-start, eng-bounded-delivery, and eng-verified-closeout.

Code must distinguish the new package identity from intentional legacy schema identity so future cleanup cannot silently rename persisted state. Existing APG installations do not automatically become RepoKeel installations; document explicit removal and installation while guaranteeing project-state compatibility and no state rewrite.

Historical evidence boundary

Preserve the historical APG record, including:

  • docs/apg-v1-contract.md
  • docs/apg-v1-three-task-value-evaluation.md
  • APG_V1_ACCEPTANCE and earlier APG acceptance markers
  • historical trials, releases, pull requests, issues, and commit messages

Current documentation may state that RepoKeel is evaluated against the frozen APG V1 contract established before the rename. It must not relabel that historical contract as a RepoKeel contract.

Delivery structure

Use at most two pull requests:

  1. chore: migrate APG product identity to RepoKeel
    • public brand, plugin and marketplace identity, release-package identity, compatibility contract, tests, migration documentation;
    • repository URLs may temporarily retain the old slug.
  2. docs: canonicalize RepoKeel repository URLs
    • after the GitHub repository rename, update canonical URLs, badges, repository/homepage/source metadata, marketplace source, and install commands.

Squash-merge both PRs after independent review and complete CI. The repository rename is a platform action between the two PRs.

Repository rename policy

Rename jayjcc8-cloud/agent-project-governance to jayjcc8-cloud/repokeel, then verify redirects, Issues, Discussions, ruleset, Actions, releases, and default branch. Update local remotes.

RESERVED_LEGACY_REPO_SLUG=agent-project-governance
REUSE_FORBIDDEN=YES

Never recreate the old repository slug; GitHub redirect is the compatibility layer. Do not transfer the repository to an organization in this task. Do not rename the local directory unless a separate audit proves zero absolute-path dependencies and zero active tasks on the old path.

Required validation

  • C1: plugin.name=repokeel, displayName=RepoKeel, marketplace.name=repokeel.
  • C2: release archive names use repokeel-v0.5.0 and archive root repokeel/.
  • C3: RepoKeel can resume, inspect, evaluate, and resolve bindings from a legacy APG runtime fixture.
  • C4: legacy APG schema identifiers remain accepted.
  • C5: reading legacy work units does not rewrite persisted identity or state.
  • C6: historical APG documents and evidence remain present and materially unchanged.
  • Fresh candidate install: bootstrap, checkpoint, resume, and package validation pass.
  • Real v0.4.1 to RepoKeel candidate migration smoke: old state reads successfully, hashes do not change, and authority semantics remain unchanged.
  • Full unit tests, package validation, PR CI, merged-main CI, and independent review all pass.

Scope freeze

PRODUCT_FUNCTION_CHANGE=NO
SKILL_API_RENAME=NO
STATE_SCHEMA_MIGRATION=NO
RELEASE=NO
TAG=NO
ORGANIZATION_TRANSFER=NO

Definition of done

REPOKEEL_IDENTITY_MIGRATION=PASS
PRODUCT_NAME=RepoKeel
PRODUCT_SLUG=repokeel
CATEGORY=PERSISTENT_PROJECT_STATE
REPOSITORY=jayjcc8-cloud/repokeel
PLUGIN_ID=repokeel
PLUGIN_DISPLAY_NAME=RepoKeel
MARKETPLACE_ID=repokeel
MARKETPLACE_DISPLAY_NAME=RepoKeel
RELEASE_PREFIX=repokeel
ARCHIVE_ROOT=repokeel
LEGACY_PLUGIN_ID=agent-project-governance
LEGACY_PLUGIN_AUTO_UPGRADE=NO
LEGACY_MIGRATION_DOCUMENTED=YES
LEGACY_STATE_READ=PASS
LEGACY_STATE_REWRITE=NO
LEGACY_SCHEMA_IDS=PRESERVED
AGENT_RUNTIME_FORMAT=PRESERVED
SKILL_IDS_CHANGED=NO
HISTORICAL_APG_DOCS=PRESERVED
HISTORICAL_APG_RELEASES=PRESERVED
HISTORICAL_APG_MARKERS=PRESERVED
OLD_REPOSITORY_REDIRECT=PASS
OLD_REPOSITORY_SLUG_REUSE=FORBIDDEN
PUBLIC_DOCS=RepoKeel
TOPICS_UPDATED=YES
PRODUCT_BEHAVIOR_CHANGED=NO
TESTS=PASS
PACKAGE_VALIDATION=PASS
PR1_CI=PASS
MERGED_MAIN_CI=PASS
PR2_CI=PASS
FRESH_INSTALL_SMOKE=PASS
APG_TO_REPOKEEL_MIGRATION_SMOKE=PASS
NEW_TAG=NO
NEW_RELEASE=NO
REPOKEEL_V0_5_RELEASE_READY=YES

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationDocumentation improvementenhancementFocused product or contributor-experience improvementpriority:P2Normal priority

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions