AgentSkillsCN

upstream-evaluation

利用 Navigator 的设计框架评估上游变更,从而决定哪些内容应采纳、跳过,或加以适配。

SKILL.md
--- frontmatter
name: upstream-evaluation
description: Evaluate upstream changes using Navigator's design frameworks to decide what to adopt, skip, or adapt
triggers:
  - evaluate upstream
  - assess changes
  - integration decisions
  - what should we adopt
archetype: analysis
user_invocable: false

Upstream Evaluation Skill

Systematic evaluation of upstream changes using Navigator's design frameworks. This skill focuses purely on decision-making — what to adopt, skip, or adapt — not execution.

Primary Reference

Read first: docs/architecture/DESIGN.md

This document defines Navigator's:

  • Layer model (user surface vs. internals)
  • Decision frameworks (A-E)
  • Naming conventions
  • Consolidation patterns
  • Historical decisions as precedent

Evaluation Process

Step 1: Categorize Each Change

For each upstream change, determine its type:

TypeExamplesPrimary Framework
New feature/actionstyles, recording_startFramework A
Renamed APIsnapshotcaptureFramework B
Upstream adopts our conceptThey add element refsFramework C
Multiple related actionsgetByText, getByRole, etc.Framework D
Bug fix, security patchAny fix commitFramework E (always adopt)
Branding/vendor-specificMarketplace pluginsFramework E (always skip)

Step 2: Apply Decision Framework

Framework A: New Upstream Feature

code
Does it benefit agents?
├─ NO → Skip or defer
└─ YES → Does Navigator have existing concept?
    ├─ YES → Extend existing (don't duplicate)
    └─ NO → Add new action
        └─ Is upstream naming agent-friendly?
            ├─ YES → Adopt (camelCase conversion)
            └─ NO → Create Navigator name

Output format:

markdown
### [feature-name]
- **Decision**: Adopt / Skip / Defer / Extend existing
- **Navigator name**: `camelCaseName` (if adopting)
- **Category**: Navigation / Interaction / Capture / etc.
- **Rationale**: Why this decision

Framework B: Upstream Renames Something

code
Which layer affected?
├─ INTERNAL → Align with upstream (no user impact)
└─ USER SURFACE → Is new name objectively better?
    ├─ NO → Keep Navigator name (stability wins)
    └─ YES → Migration with deprecation

Output format:

markdown
### [renamed-thing]
- **Decision**: Align internally / Keep Navigator name / Migrate with deprecation
- **Layer affected**: Internal / User surface
- **Rationale**: Why this decision

Framework C: Upstream Catches Up

code
Upstream adopts our concept
└─ Is naming identical?
    ├─ YES → Simplify executor (remove translation)
    └─ NO → Keep Navigator name, simplify mapping

Framework D: Consolidate vs. Mirror

code
Multiple upstream actions with related purpose
└─ Are they cognitively distinct for agents?
    ├─ YES → Mirror as separate actions
    └─ NO → Consolidate with parameters

Framework E: Quick Classification

ClassificationActionExamples
Bug fixAlways adoptCrash fixes, edge cases
Security patchAlways adopt immediatelyAuth fixes, XSS prevention
PerformanceUsually adoptUnless invasive
BrandingAlways skipVendor plugins, marketplace
Dev toolingEvaluateMay not benefit agents

Step 3: Check Naming Conventions

For each adopted feature, verify naming follows conventions:

LayerConventionCheck
MCP actioncamelCaserecordingStart not recording_start
CLI commandverb-nounnav recording start
ParameterscamelCasecolorScheme not color_scheme

Reordering rule: Verb should come first for CLI-friendly naming.

  • tab_newnewTab (verb-noun in camelCase)
  • recording_startrecordingStart (verb already first)

Step 4: Identify Schema Changes

For each adopted feature, specify:

markdown
### Schema Changes Required

#### [action-name]
**File**: `packages/core/src/schema/index.ts`
**Type**: New action / Extend existing / Modify parameters

```typescript
// Proposed schema
export const actionNameSchema = baseActionSchema.extend({
  action: z.literal('actionName'),
  // parameters...
})

Executor mapping: actionName → upstream action_name

code

### Step 5: Document Decisions

Compile all decisions into a structured format:

```markdown
## Evaluation Summary

### Adopt
| Feature | Navigator Name | Category | Schema Change |
|---------|---------------|----------|---------------|
| styles | `styles` | Capture | New action |
| recording_* | `recordingStart/Stop/Restart` | Capture | 3 new actions |

### Skip
| Feature | Reason |
|---------|--------|
| marketplace plugin | Branding-specific (Framework E) |

### Defer
| Feature | Reason | Revisit When |
|---------|--------|--------------|
| feature-x | Unclear agent benefit | When use case emerges |

### Extend Existing
| Feature | Existing Action | Change |
|---------|-----------------|--------|
| tab_new url param | `newTab` | Add optional `url` parameter |

Evaluation Checklist

Before completing evaluation:

  • Every change categorized (new/rename/catchup/multiple/fix/branding)
  • Appropriate framework applied to each
  • Naming conventions verified for all adoptions
  • Schema changes specified with code snippets
  • Decisions documented with rationale
  • Historical precedents checked in DESIGN.md

Invocation

This skill is loaded by the /agent-browser:integrate-changes command.

Handoff

After evaluation completes, hand off to:

  • Documentation: /agent-browser:issue to create tracking issue
  • Execution: /agent-browser:update for merge/sync steps
  • Implementation: senior-dev agent for schema changes

The evaluation output becomes the "what and why" — other commands handle "how."