smithery.ai

add-route-context

为Flutter页面添加路由上下文记录功能,支持日期等参数的AI上下文识别。当需要让AI助手通过"询问当前上下文"功能获取页面状态(如日期、ID等参数)时使用。适用场景:(1) 日期驱动的页面(日记、活动、日历等),(2) ID驱动的页面(用户详?

First seen Mar 20, 2026

Installation

$ npx skills add https://smithery.ai

Summary

为Flutter页面添加路由上下文记录功能,支持日期等参数的AI上下文识别。当需要让AI助手通过"询问当前上下文"功能获取页面状态(如日期、ID等参数)时使用。适用场景:(1) 日期驱动的页面(日记、活动、日历等),(2) ID驱动的页面(用户详??

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,767 B
  • docs SUMMARY.md 422 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Add Route Context

为Flutter页面添加路由上下文记录,使AI助手能理解用户当前查看的页面参数。

Workflow

1. Analyze Target File

Read the target file and identify:

  • State class name
  • Parameter variable (e.g., selectedDate, userId)
  • Parameter change method (e.g., _onDateChanged)
  • Initialization method (e.g., initState, _initializeService)

2. Add RouteHistoryManager Import

import 'package:Memento/core/route/route_history_manager.dart';

3. Create Update Method

For DateTime parameter:

/// 更新路由上下文,使"询问当前上下文"功能能获取到当前日期
void _updateRouteContext(DateTime date) {
  final dateStr = '${date.year}-${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')}';
  RouteHistoryManager.updateCurrentContext(
    pageId: "/route_name",
    title: '页面标题 - $dateStr',
    params: {'date': dateStr},
  );
}

For custom parameter:

/// 更新路由上下文
void _updateRouteContext(String paramValue) {
  RouteHistoryManager.updateCurrentContext(
    pageId: "/route_name",
    title: '页面标题 - $paramValue',
    params: {'paramName': paramValue},
  );
}

4. Call in Initialization

Add call at end of initialization method:

Future<void> _initializeService() async {
  // ... existing code ...

  // 初始化时设置路由上下文
  _updateRouteContext(_initialParam);
}

5. Call on Parameter Change

Add call in parameter change handler:

void _onParamChanged(ParamType newParam) {
  if (newParam == _currentParam) return;

  setState(() {
    _currentParam = newParam;
  });
  // ... existing code ...

  // 更新路由上下文
  _updateRouteContext(newParam);
}

6. Update Route Parser

Add route template to lib/core/action/builtin/askcontextaction/routeparser.dart:

static const Map<String, String> _routeTemplates = {
  // ... existing routes ...

  // 插件名称
  '/route_name': '用户正在查看 {paramName} 的XXX',
};

DateTime parameter example:

'/activity_timeline': '用户正在查看 {date} 的活动时间轴',

Custom parameter example:

'/user_profile': '用户正在查看 {userId} 的用户资料',

Detection Patterns

DateTime Variables

Look for variables matching:

  • Names: selectedDate, currentDate, _focusedDay, date
  • Type: DateTime

Look for methods matching:

  • Names: onDateChanged, onDayChanged, _selectDate
  • Parameter type: DateTime

Custom Parameters

Look for variables matching the --param argument name.

Result

After execution:

在页面加载时:

  • AI上下文:用户正在查看 2025-12-22 的活动时间轴

在参数变化时:

  • AI上下文自动更新:用户正在查看 2025-12-21 的活动时间轴

Notes

  • Extract update logic to separate method to avoid duplication
  • Use Chinese comments matching existing codebase style
  • Format dates as YYYY-MM-DD for consistency
  • Route parser uses RegExp(r'\{(\w+)\}') for placeholder replacement
  • Verify with flutter analyze after changes