AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

User Thoughts

skill-julardepick-user-thoughts-skill-user-thoughts · by JularDepick

>-

No reviews yet
0 installs
6 views
0.0% view→install

Install

$ agentstack add skill-julardepick-user-thoughts-skill-user-thoughts

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-julardepick-user-thoughts-skill-user-thoughts)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of User Thoughts? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

user-thoughts.SKILL

概述

跨会话、跨 Agent 时,用户积累的决策和约束会彻底丢失。user-thoughts.SKILL 将这些想法持久化到 mdbase,绑定于项目而非会话——任何接手的 Agent 读取 mdbase 即可继承用户的完整意图,无需重新推导。

重要声明

  • 本 SKILL 系指本文档及同目录下内容,整体称 user-thoughts.SKILL
  • 用户:使用、调用、提及本 SKILL 的发言人
  • 行为边界:SKILL 只做想法分析和记录,不干预 Agent 对用户指令的执行。这是核心设计——当用户说"把按钮改成红色"时,Agent 应同时执行修改并记录偏好,两者并行互不干扰。记录行为不应延迟或阻塞用户的实际工作

When to Use

  • 用户输入 /user-thoughts/ustht 命令时
  • 用户讨论架构、技术栈、规则、UI/UX 等项目决策时
  • 用户发言中提及"想法"、"记录"、"mdbase"等关键词时
  • 用户表达项目相关的需求、偏好、约束时

使用指南

  • 用户发言包含项目想法、决策、需求、规则、偏好时,SKILL 自动激活
  • 命令以 /user-thoughts/ustht 引导(详见 [references/commands.md](references/commands.md))
  • 自然语言触发兼容任何语言——Agent 应匹配用户意图,而非特定关键词

命令前缀/user-thoughts 为完整前缀,/ustht 为简写,两者等价可互换。

激活边界:当用户发言同时包含指令和想法时(如"把这个按钮改成红色"),Agent 应执行指令并同时记录想法。仅当发言纯粹是闲聊或与项目完全无关时(如"今天天气不错")才不激活。

语言策略

  • SKILL 本体(SKILL.md、references/、assets/)语言固定为中文,不随用户语言变化
  • Agent 输出适配用户语言:命令反馈、sortin 摘要、mdbase 展示、提示信息等面向用户的输出,应使用用户当前对话所用的语言——用户无需切换语言即可理解反馈
  • 想法原文保留:raw 记录和 mdbase 中的想法内容保持用户原始语言,不翻译、不转换——保持原文可避免翻译引入的歧义,且用户原始表述是最权威的意图表达

工作原理

工作流

用户发言 → Agent 识别项目想法 → 写入 raw/(即时计划)
         ↓
用户执行 /ustht sortin → Agent 处理 raw/ → 按维度追加到 mdbase/
         ↓
用户执行 /ustht mdbase show → Agent 展示组织好的想法库

工作模式

  • 被动模式INSTANT_STATUS=off):仅响应技能命令,不自动识别想法
  • 即时计划模式INSTANT_STATUS=onSKILL_STATUS=on):自动识别用户想法并写入 #raw/,mdbase 写入延迟到 sortin
  • 忽略模式ignore start/end 区间内发言不记入
  • 只读模式(必需工具缺失时):只读命令可用,写入命令返回提示

模式组合:即时计划 + 忽略可同时生效。SKILL_STATUS=off 时即时计划自动暂停,无论 INSTANT_STATUS 值如何。被动/即时计划通过 define.ini 持久化;忽略区间仅上下文有效。


目录定义

  • @/:SKILL 安装目录(SKILL.md 所在目录,即 user-thoughts/
  • ~/:工作目录
  • #ustht/ = ~/.ustht/.usthtuser-thoughts 的运行时缩写)
  • #mdbase/ = ~/.ustht/mdbase/
  • #ignored/ = ~/.ustht/ignored/
  • #raw/ = ~/.ustht/raw/
  • #export/ = ~/.ustht/export/

#ustht 目录结构

.ustht/
├── define.ini           # SKILL 运行状态
├── README.ai.md         # .ustht/ 目录说明
├── raw/                 # 用户原始发言(按日期分片)
│   └── yyyy-mm-dd.md
├── ignored/             # 被标记忽略的发言
│   └── yyyy-mm-dd.md
├── mdbase/              # 整理后的用户想法库
│   ├── backlog.md       # 待办事项(用户明确提出但尚未开始的事项,由 sortin 归入)
│   ├── README.ai.md     # mdbase 索引与概览
│   └── details/         # 按维度组织的想法文件
│       ├── rules.md     # 项目规则、约束、原则
│       ├── plans.md     # 项目规划、方向性想法
│       ├── ui/
│       │   ├── outline.md  # UI 整体设计
│       │   └── details.md  # UI 细节设计
│       ├── dev-stack.md # 技术栈选型、框架决策
│       ├── general.md   # 通用(不属于其他维度的想法)
│       └── ...          # 按需扩展
└── export/              # 从 mdbase 导出的内容

工具与环境

依赖(本 SKILL 不提供):

  • read/write(必需):读写 #ustht/ 下各文件,也用于初始化时逐文件复制模板
  • bash(必需):目录创建、文件删除。不使用 cp -r 等递归命令(防止符号链接攻击)
  • SubAgent(可选):并行维护 mdbase 维度文件

SubAgent 可用时必须使用,不得由主 Agent 自行维护。原因:mdbase 维护涉及多文件读写,SubAgent 可并行处理各维度文件,显著减少主 Agent 的上下文占用和执行时间。SubAgent 不可用时主 Agent 才直接执行。

必需工具缺失时向用户发出警告,SKILL 进入只读模式:只读命令(mdbase showrawstatusignore show)仍可用,写入命令(sortinwrite_rawignore start/endignore --lastinit)返回提示。

内置脚本

@/scripts/ 下提供 Python 脚本,Agent 可通过 bash 直接调用,减少多文件操作的 token 消耗:

| 脚本 | 用途 | 调用示例 | |------|------|---------| | common.py | 共享工具函数(供其他脚本导入) | 不直接调用 | | status.py | 显示当前状态 | python @/scripts/status.py | | init.py | 初始化 .ustht/ | python @/scripts/init.py | | show_raw.py | 查看未处理 raw | python @/scripts/show_raw.py | | show_mdbase.py | 查看 mdbase 索引/维度 | python @/scripts/show_mdbase.py show [--all\|--维度名] | | sortin.py | 执行软维护 | python @/scripts/sortin.py [--dry] | | write_raw.py | 写入 raw 条目 | python @/scripts/write_raw.py "想法" [--dim 维度] | | toggle.py | 切换状态 | python @/scripts/toggle.py skill\|instant [on\|off] | | ignore_ops.py | 忽略操作 | python @/scripts/ignore_ops.py show\|remove_last\|add_suffix |

> resort(硬维护) 无独立脚本——该操作需要 Agent 语义分析(去重、归类、合并),由 Agent 直接执行。

脚本自动检测工作目录下的 .ustht/,无需手动指定路径。所有脚本支持 --help 参数查看详细用法。优先使用脚本处理机械性操作,将 Agent 的上下文留给语义分析(如维度归类)。


语法定义

本文档中 &[keyname] 表示引用 #ustht/define.ini 中 keyname 的值,是文档内的简写记法。Agent 通过读取 define.ini 获取实际值。define.ini 的写入由 sortin/resort/init 通过整文件覆写完成,不使用 &[keyname]=value 语法。

| 键名 | 类型 | 说明 | |------|------|------| | SKILLSTATUS | on\|off | 技能启用状态 | | INSTANTSTATUS | on\|off | 即时计划启用状态(需 SKILLSTATUS=on 才生效) | | LASTSORTIN | yyyy-mm-dd HH:MM | 上次 sortin 时间戳 |


技能命令

命令以 /user-thoughts/ustht 引导,两者等价。完整正则语法和自然语言映射见 [references/commands.md](references/commands.md)。

状态与开关

  • /ustht init — 初始化工作目录(创建 .ustht/ 及模板)
  • /ustht status — 输出全部状态(SKILLSTATUS、INSTANTSTATUS、LAST_SORTIN、未处理 raw 文件数、mdbase 维度文件数)
  • /ustht skill — 输出技能状态
  • /ustht skill on|off — 开启/关闭技能
  • /ustht instant — 输出即时计划状态
  • /ustht instant on|off — 开启/关闭即时计划

维护流程

  • /ustht sortin [--dry] — 软维护(追加新想法),--dry 预览不写入
  • /ustht resort [--dry] — 硬维护(重整全部 mdbase),--dry 预览不写入

忽略管理

  • /ustht ignore start|end — 开始/结束忽略区间(仅上下文有效)
  • /ustht ignore --last — 忽略上一条已记录的想法(从 raw 中删除该条目,记入 #ignored/;若 raw 文件变空,保留空文件不删除)
  • /ustht ignore — 独立使用时等价于 --last(优先匹配全行命令正则,不触发后缀模式)
  • /ustht ignore show — 列举 #ignored/ 目录内容(只读命令,SKILL 关闭时仍可用)
  • .*/ustht ignore — 后缀模式,忽略本条消息的想法(不记入 raw,记入 #ignored/;不受 SKILL_STATUS 控制)

内容查看与导出

  • /ustht raw — 查看未处理的 raw 记录
  • /ustht mdbase show [--all|--维度名] — 查看索引或指定维度
  • /ustht mdbase export [--all|--维度名] — 导出到 #export/
  • /ustht import — 扫描路径下 .md 文件,并入 mdbase

触发规则: 用户发言匹配命令,或自然语言意图明确指向唯一命令时触发。详细映射见 [references/commands.md](references/commands.md)。

链式命令: 使用 && 连接多条命令,按顺序依次执行。如 /ustht skill on && instant on


即时计划

&[INSTANT_STATUS]on 时自动执行:

  1. 识别:判断用户发言是否包含项目想法、决策、需求、规则、偏好
  2. 制订计划:写入 #raw/ 当天日期.md,格式 - [HH:MM] 想法原文 | 待归入:预判维度
  3. 不执行:不改动 mdbase,延迟到 sortin 时统一执行
  4. 过滤:忽略区间内或末尾携带 /ustht ignore(或 /user-thoughts ignore)的发言不写入
  5. 不中断:后台静默执行,不打断正常对话
  6. 自动建议:单日 raw 条目超过 5 条时,主动建议用户执行 sortin

维护流程

流程入参:sortin 软维护(追加)| resort 硬维护(重整)。

  1. 读取 #raw/ 全部 .md,过滤掉已含 `` 标记的文件
  2. 逐条分析归属维度
  3. 追加(soft)或重整(hard)mdbase 对应文件
  4. 在已处理 raw 文件头部插入 `` 标记
  5. 更新 define.iniLAST_SORTIN 时间戳
  6. 更新 #mdbase/README.ai.md 索引和概要
  7. 输出摘要

维度文件管理、raw 状态机制详见 [references/sortin.md](references/sortin.md)。


第一次使用

当工作目录下不存在 .ustht/ 时,Agent 自动触发 /ustht init,或用户手动执行:

  1. ~/ 创建 .ustht/ 目录
  2. 复制 @/assets/Runtime-Template/ 全部内容到 #ustht/
  3. 用 bash 创建 #raw/#ignored/#export/ 目录(若模板未包含)
  4. 确认 define.ini 包含完整键值(SKILLSTATUS、INSTANTSTATUS、LAST_SORTIN)
  5. 输出初始化确认:目录结构概览 + 可用命令列表(命令以 /ustht 形式展示)

已存在 .ustht/ 时执行 /ustht init:输出提示"已初始化",不覆盖。


示例

基本对话捕获

User: "登录页用 OAuth2,别用 JWT——上个项目吃过 token 过期的亏。"
Agent: [即时计划] 已记录到 raw/2026-05-31.md

User: "/ustht sortin"
Agent: [sortin] 1 条新想法归入 rules.md

User: "/ustht mdbase show rules"
Agent:
  ## rules.md
  - [2026-05-31 14:00] 登录页用 OAuth2,别用 JWT——上个项目吃过 token 过期的亏。

忽略区间

User: "/ustht ignore start"
User: "今天天气不错,中午吃什么?"
User: "/ustht ignore end"
User: "首页按钮改成圆角 8px"
Agent: [即时计划] 已记录到 raw/2026-05-31.md(仅"圆角 8px"一条)

跨会话接手

[会话 1]
User: "Next.js + Prisma,不要 MongoDB。暗色主题优先。"
Agent: [即时计划] 已记录

[会话 2 / 不同 Agent]
Agent 读取 .ustht/mdbase/ → 已知技术栈和 UI 偏好 → 直接实现

最佳实践

  • 用户发言优先:明确表述都应记录,不得以 Agent 判断为由忽略——用户说了就记,这是用户的决策库,不是 Agent 的判断库
  • 不过度推断:只记录用户明确表达或可直接推导的想法——过度推断会污染 mdbase,让用户难以分辨哪些是自己的原意
  • 保持原文:保留用户原始表述,不简化、不改写、不丢失细节。sortin 的"格式化"仅指:去除 raw 中的时间戳前缀和 | 待归入:维度名 后缀,按日期分组加标题,不改动想法正文。原文中的否定句、具体数值、限定条件都是关键意图,丢失它们等于丢失决策
  • 维度归类:优先归入已有维度,无合适维度则归入 general.md,待办类想法归入 backlog.md(注意:backlog.md 存储在 mdbase/ 根目录而非 details/ 下,与其他维度不同)
  • 冲突处理:以最新发言为准,原记录标注被替代并附日期——用户的决策会演进,保留历史但以最新为准
  • 单条多想法拆分:一条消息包含多个独立想法时,拆分为多条记录——便于 sortin 按维度分别归类
  • 非项目内容不记录:闲聊、与项目无关的话题不记入想法——mdbase 是项目决策库,不是聊天日志

局限性

  • 本 SKILL 不能替代用户自身的判断——Agent 按规则记录,但不验证想法的可行性或一致性,这是有意为之:mdbase 是用户的决策记录,不是 Agent 的建议系统
  • sortin 的维度归类依赖 Agent 语义分析,可能需要用户通过 resort 纠正——语义理解有边界,用户纠正是正常的迭代过程
  • 忽略区间仅在当前上下文有效,跨会话自动失效——忽略通常是临时性需求,持久化反而可能造成意外遗漏
  • .ustht/ 目录的安全性由用户保障,SKILL 不做脱敏处理——保持原文原则要求不修改内容,敏感数据由用户通过 ignore 主动管理

安全规范

  • 路径安全:维度名每段仅允许 [a-z0-9] 开头和结尾的 [a-z0-9-] 序列,支持 / 作为子目录分隔符(如 ui/outline),禁止 ..\——维度名会被拼接为文件路径,特殊字符可能导致路径遍历攻击。所有操作限制在 #ustht/
  • 内容安全:想法原文保留不转义,`` 仅检查文件第一行——防止用户想法中的标记字符串干扰 sortin 判断
  • define.ini 安全:值不得含换行符或 =——防止键值注入。写入使用整文件覆写
  • bash 安全:不执行用户任意 shell 命令,文件名从已验证维度名构造——防止命令注入
  • 敏感数据:不脱敏,用户通过 ignore 主动排除,.ustht/ 安全性由用户保障

完整安全规范见 [references/safety.md](references/safety.md)。


常见陷阱

  • ignore 区间不持久化ignore start 仅在当前上下文有效,跨会话自动失效——这是设计选择,不是缺陷,因为忽略意图通常只对当前对话有意义
  • 命令与想法共存时:先执行命令,再做想法记录,顺序不可颠倒。命令触发词本身不记入想法内容
  • raw 的 `` 标记:必须在文件第一行,不能放在其他位置——sortin 仅检查第一行来判断文件是否已处理
  • sortin 不锁文件:依赖 Agent 协调,sortin 期间新发言正常记入 raw
  • 不主动删除维度文件:用户明确要求时才标记 ``,不物理删除——保留历史可追溯性
  • resort 模式:不是只追加,而是去重、归类、合并,必要时调整结构——与 sortin 的"只追加"策略不同
  • ignore --last 无上一条:返回提示,不报错——静默失败比报错更符合忽略操作的语义
  • 维度名验证:每段须以 [a-z0-9] 开头和结尾,仅 [a-z0-9-],支持 / 子目录分隔,含 ..\ 的参数必须拒绝——防止路径遍历攻击
  • define.ini 写入:值不得含换行符或 =,整文件覆写不追加——防止键值注入
  • 通用兜底:无法归入已有维度的想法追加到 general.md,不轻易新建维度——维度膨胀会降低 mdbase 的可用性

边界场景

  • SKILL 关闭后:文件保留,写入类命令(sortinignore start/endignore --lastinit)返回提示,只读命令(mdbase showrawstatusignore show)仍可用。后缀模式 .../ustht ignore 不受 SKILL_STATUS 控制
  • 跨会话恢复:读取 define.ini 恢复状态,忽略区间不恢复
  • 多项目隔离:各工作目录独立 .ustht/,互不影响

更多边界场景和完整交互示例见 [references/edge-cases.md](references/edge-cases.md)。


关联技能

  • 无直接关联技能。本 SKILL 专注于用户想法的持久化,与其他技能无依赖关系。

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.