neutralize upstream service branding
This commit is contained in:
@ -0,0 +1,62 @@
|
||||
# Upstream Brand Neutralization Implementation Plan
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** Remove the upstream product identity from the current Memory Gateway files without changing the upstream memory HTTP protocol.
|
||||
|
||||
**Architecture:** Replace product-specific names with `backend` terminology at configuration, client, service, API, test, and documentation boundaries. Enforce the result with a repository-level regression test that scans both file names and text content.
|
||||
|
||||
**Tech Stack:** Python 3, FastAPI, pytest, Markdown, environment configuration.
|
||||
|
||||
---
|
||||
|
||||
### Task 1: Add the neutral-brand regression test
|
||||
|
||||
**Files:**
|
||||
- Create: `tests/test_branding.py`
|
||||
|
||||
- [x] Add a test that constructs the forbidden token from separate string fragments.
|
||||
- [x] Scan non-generated project file names and UTF-8 text contents.
|
||||
- [x] Run the test and verify it fails against the existing product-specific names.
|
||||
|
||||
### Task 2: Rename runtime boundaries
|
||||
|
||||
**Files:**
|
||||
- Rename: `core/backend_client.py` to `core/backend_client.py`
|
||||
- Modify: `core/api.py`
|
||||
- Modify: `core/config.py`
|
||||
- Modify: `core/service.py`
|
||||
- Modify: `core/__init__.py`
|
||||
- Modify: `.env.example`
|
||||
- Modify: `.gitignore`
|
||||
- Delete: `backend.env.example`
|
||||
|
||||
- [x] Rename the client class, dependency attributes, retry helpers, and configuration fields to `backend` terminology.
|
||||
- [x] Rename environment variables to `MEMORY_GATEWAY_BACKEND_*`.
|
||||
- [x] Rename health and direct add/flush response fields to `backend`.
|
||||
- [x] Preserve all `/api/v1/memory/*` paths.
|
||||
|
||||
### Task 3: Rename tests and public documentation
|
||||
|
||||
**Files:**
|
||||
- Rename: `tests/test_backend_integration.py` to `tests/test_backend_integration.py`
|
||||
- Modify: `tests/test_gateway.py`
|
||||
- Modify: `tests/test_command.md`
|
||||
- Modify: `README.md`
|
||||
- Modify: `pyproject.toml`
|
||||
- Modify: `skill/memory-gateway-agent/SKILL.md`
|
||||
- Modify: `skill/memory-gateway-agent/references/api.md`
|
||||
|
||||
- [x] Rename fixtures, tests, environment flags, examples, and expected JSON fields.
|
||||
- [x] Describe the dependency only as an upstream memory service.
|
||||
- [x] Update integration commands and package metadata.
|
||||
|
||||
### Task 4: Verify the current working tree
|
||||
|
||||
**Files:**
|
||||
- Modify: `docs/superpowers/plans/2026-06-12-upstream-brand-neutralization.md`
|
||||
|
||||
- [x] Remove generated bytecode caches.
|
||||
- [x] Run the branding regression test.
|
||||
- [x] Run the full test suite and Python compilation.
|
||||
- [x] Run a final case-insensitive content and file-name scan, excluding `.git` history.
|
||||
@ -0,0 +1,23 @@
|
||||
# Upstream Brand Neutralization Design
|
||||
|
||||
## Goal
|
||||
|
||||
Remove the upstream product name from the current Memory Gateway working tree while preserving the upstream HTTP protocol and application behavior.
|
||||
|
||||
## Scope
|
||||
|
||||
- Rename the upstream client module, class, configuration fields, environment variables, state attributes, response fields, tests, and integration test file to neutral `backend` terminology.
|
||||
- Rewrite README, Skill documentation, examples, package metadata, and test records to describe an "upstream memory service".
|
||||
- Remove the upstream-specific environment example because its variable names identify the product.
|
||||
- Preserve `/api/v1/memory/add`, `/api/v1/memory/flush`, and `/api/v1/memory/search` paths.
|
||||
- Do not rewrite Git history.
|
||||
|
||||
## Compatibility
|
||||
|
||||
This is an intentional configuration and response-schema rename. Deployments must move to `MEMORY_GATEWAY_BACKEND_*` variables, and health/add/flush consumers must read the `backend` field. No legacy aliases are retained because they would defeat the neutralization requirement.
|
||||
|
||||
## Verification
|
||||
|
||||
- Add an automated repository scan that rejects the forbidden upstream token in current files and file names.
|
||||
- Run the full unit suite and compilation checks.
|
||||
- Run a final case-insensitive repository scan excluding `.git`, virtual environments, runtime data, and generated bytecode.
|
||||
Reference in New Issue
Block a user