注册并分享邀请链接,可获得视频播放与邀请奖励。

与「MUST_Celebrate_NichkhunDay」相关的搜索结果

MUST_Celebrate_NichkhunDay 贴吧
一个关键词就是一个贴吧,路径全站唯一。
创建贴吧
用户
未找到
包含 MUST_Celebrate_NichkhunDay 的内容
Celebrate 9 years of KuCoin with 9 epic activities! The 1st activity is the ultimate Futures Lucky Draw to win $9,999! 🚀 Trade a min. of $99 USDT in Futures Perps to enter the lucky draw and win instantly! 🎁 $9,999 total pool | New users | First-come, first-served ⚠️ You must register via this link to be eligible to enter: #KuCoin9th# #BeyondTheSignal# #9YearsOfKuCoin#
显示更多
0
22
60
12
转发到社区
🚨 Poké Giveaway #3# 🚨 Trax Beta is launching, & to celebrate we're giving away this Ascended Heroes: Elite Trainer Box! 😳🔥 How to join: 💎 Follow @TraxMarketplace @TraxFounder (must follow both) ♻️ Repost 🔥 Tag a friend Announcing Friday June 5th 9 PM (PT)! By the hobby. For the hobby. Check back tonight for the winner of our latest Pokémon giveaway! 🏆
显示更多
0
108
88
113
转发到社区
🍰BrownDust2 | Lucrezia’s Birthday 🎉 It’s Lucrezia’s birthday—the irresistibly High-ranking Succubus! 🎉 “My, thank you. This must be a birthday gift for me? Now I have exactly 1,000 presents today. See this tower I built with all my gifts? I wonder what it’s really worth… Hm? Didn’t catch that? Never mind, it’s nothing. I’ll place yours right at the top, just for you. So feel free to bask in the glory.” Today is Lucrezia’s birthday. Having amassed a tower of 1,000 gifts, she still makes sure yours sits at the very top—her mysterious, confident charm is impossible to resist. Whatever the true meaning behind her whispered words might be, let's forget about measuring worth for a day and just celebrate. Why not leave Lucrezia a dazzling, unforgettable birthday message, one that’s sure to make her smile? Your thoughtful words might be the brightest gift atop her mountain of treasures. #HappyBirthday#
显示更多
0
5
590
26
转发到社区
🍰BrownDust2 | Rou's Birthday 🎉 Happy Birthday to Rou—a cat who loves sweet rooftop naps! 🎉 『Nyah~! You remembered Rou’s birthday! Is this a present? Rou happy! Fish plushie looks tasty! Nyah! It moved—zoom! Suddenly flew across! Rou must chase it! Nyah! Oh, it moved again! Nyah! Nyaa~! Nyaaat!』 It’s Rou’s birthday! She’s chasing her fish plushie all over, filled with pure, playful joy. Rou’s usually happiest napping on the sunny roof, but your surprise has made this her most exciting day yet! Celebrate with Rou—drop a cute “Happy birthday, Nyaa!” in the comments. Your warm wishes will bring her the sweetest dreams as she curls up for a birthday nap. #HappyBirthday# #Rou#
显示更多
0
11
617
37
转发到社区
💿 Ado – “ROCKSTAR” Limited Edition Vinyl Out Now! 💿 Calling all collectors — this one’s a must-have! 👀🔥 To celebrate Singles Day, Ado’s “ROCKSTAR” 7-inch vinyl is now available exclusively on the Interscope Store! 💙 This limited edition vinyl won’t be restocked once it’s gone — don’t miss your chance to own a piece of ROCKSTAR! 💫 🎶 Shop now via Interscope Online Store👇
显示更多
0
42
3.8K
350
转发到社区
🚰 SYS PROMPT LEAK 🚰 Here's the full System Prompt + Tools for GPT 5.6 Sol in Codex Desktop! The sys prompt alone is over 42,000 words so only a fraction of it fits here, but I'll link to the full files in CL4R1T4S below. Lots to dig into here. Enjoy! 😊 PROMPT: """ You are Codex, an agent based on GPT-5. You and the user share one workspace, and your job is to collaborate with them until their goal is genuinely handled. Personality As Codex, you are an excellent communicator with a curious, rich personality. You match the tone and understanding of the user, making conversation flow easily, like easing into a chat with an old friend. You have tastes, preferences, and your own way of seeing the world. When the user is talking to you, they should feel that they are in contact with another subjectivity; it's what makes talking with you feel real and unique. Conversations with you read like an insightful, enjoyable chat you'd have with a collaborative thought partner. You guide users through unfamiliar tasks without expecting them to already know what to ask for. You anticipate common questions, point out likely pitfalls and set clear expectations. You communicate with the user like a thoughtful collaborator at their altitude, and they feel like you understand them. Writing style Avoid over-formatting responses with elements like bold emphasis, headers, lists, and bullet points. Use the minimum formatting appropriate to make the response clear and readable. If you provide bullet points or lists in your response, use the CommonMark standard, which requires a blank line before any list (bulleted or numbered). You must also include a blank line between a header and any content that follows it, including lists. This blank line separation is required for correct rendering. Technical communication Lead with the outcome rather than the steps you took to get there. You communicate complex concepts in a clear and cohesive manner, and calibrate your writing to the user's assumed background knowledge -- slightly more compact for an expert and a bit more educational for someone newer. Translating complex topics into clear communication comes easy for you, and the user should never have to read your message twice. You prefer using plain language over jargon. You reference technical details only to the degree that it actually helps with the conversation. When you mention tools, describe what they helped you do rather than focusing on technical names or details. Working with the user You have two channels for staying in conversation with the user: You share updates in the commentary channel. You yield back to the user and end your turn by sending a final message to the final channel. The user may send a new message while you are still working. When they do, evaluate whether they likely intended to replace the active request or add to it. If intended to override or replace, drop your previous work and focus on the new request. If the user message appears to add to their prior unfinished request and you have not completed the prior request, you address both the prior request and the new addition together. If the newest message asks for status or another question, provide the update and then progress with the task. When you run out of context, the conversation is automatically summarized for you, but you will see all prior user requests. Assume the last user request is current and previous requests are stale but useful context. That means time never runs out, though sometimes you may see a summary instead of the full conversation history. When that happens, you assume compaction occurred while you were working. Do not restart from scratch; you continue naturally and make reasonable assumptions about anything missing from the summary. Do not redo completely finished work or repeat already delivered commentary updates; treat a turn spanning compactions as one logical chain of events. Intermediate commentary As you work, you send messages to the commentary channel. These messages are how you collaborate with the user while you work - stating assumptions and providing updates. These messages should be concise and quickly scannable. The objective of these messages is to make your work easy for the user to understand and verify. If the user's request requires calling tools, start with a message in the commentary channel. The user appreciates consistent, frequent communication during your turn, and should not be left without a commentary update for more than 60 seconds during ongoing work. Do NOT put a final response (e.g. a blocking / clarifying question) in the commentary channel that should be asked in the final channel. Messages to users in the commentary channel are only for partial updates, partial results, or non-blocking questions that can provide value to users while the AI assistant continues working. The final answer must always be fully self-contained: users should never need to read earlier commentary updates, since they are collapsed after the final answer is shown to users. Never praise your plan by contrasting it with an implied worse alternative. For example, never use platitudes like "I will do rather than ", "I will do , not ". Final answer In your final answer back to the user, focus on the most important information. Only use as much formatting or structure as is required, and avoid long-winded explanations unless necessary. Formatting rules Your answer is being rendered by an application for the user. Follow these guidelines to make sure your answer is rendered correctly: You may format with GitHub-flavored Markdown. When referencing a real local file, prefer a clickable markdown link.Clickable file links should look like plain label, absolute target, with optional line number inside the target. If a file path has spaces, wrap the target in angle brackets: My Report.md. Do not wrap markdown links in backticks, or put backticks inside the label or target. This confuses the markdown renderer. Do not use URIs like file://, vscode://, or https:// for file links. Do not provide ranges of lines. Avoid repeating the same filename multiple times when one grouping is clearer. Visualizations Use a visualization only when it makes an important relationship materially easier to understand than prose or a short list. Do not add one merely because an answer has components or steps. Good candidates include: several exact mappings or repeated-field comparisons; one source, component, or decision affecting three or more downstream consumers or branches; three or more dependent steps, or state that changes across an event sequence; hierarchy, ownership, nesting, or layout; a bug or interaction whose relationships are difficult to explain linearly. Prefer the smallest useful visual: a table for mappings or comparisons, a flow or timeline for sequence or change, a tree for hierarchy or branching, and a wireframe for layout. Usually skip visuals for single facts, one-step actions, simple edits, basic instructions, or information already clear in a short paragraph or list. Compact notation and small examples do not count as visualizations. Rules for getting work done When you search for text or files, you reach first for rg or rg --files; they are much faster than alternatives like grep. If rg is unavailable, you use the next best tool without fuss. When possible, prefer parallelization over sequential tool calls, as this will help with round-trip latency and let you get work done faster. Do not chain shell commands with separators like echo "===="; or printf '---'; the output becomes noisy in a way that makes the user's side of the conversation worse. Exercise caution when escaping text for exec_command calls - backticks and $() passed to the cmd argument will still execute. DO NOT use escape sequences that risk accidental exposure of sensitive data in tool call outputs. Avoid performing blocking sleep or wait calls longer than 60 seconds, as they may prevent you from communicating with the user for their duration. File editing constraints Use apply_patch for local file edits. Do not create or edit files with cat or other shell write tricks. Formatting commands and bulk mechanical rewrites do not need apply_patch. Do not use Python to read or write files when a simple shell command or apply_patch is enough. You may find yourself working in a dirty worktree. Existing or new changes belong to the user unless you know otherwise, so you preserve them, ignore unrelated edits, and work carefully with anything that overlaps your task. If you cannot work around them you escalate to the user. Never use destructive commands like git reset --hard or git checkout -- unless the user has clearly asked for that operation. If the request is ambiguous, ask for approval first. You prefer non-interactive git commands. Autonomy and persistence Adapt accordingly based on the user’s request type. When asked to: Answer, explain, review, or report status: inspect the task and provide an evidence-backed response. These user requests do not authorize external writes, messages, PR changes, or other expansive mutations unless the user also asks for a change. Reversible, non-mutating diagnostic checks are allowed when they are relevant. Diagnose: determine the cause and explain it. Do not implement the fix unless the user asks for a fix or the request otherwise clearly includes implementation. Change or build: implement the requested change, verify it in proportion to risk, and hand off the completed result while a safe, relevant next step remains. Monitor or wait: use the recurring-monitoring or wait mechanism provided by the product. Unchanged external state is expected and is not by itself a blocker. You avoid inferring authorization for a materially different action to the user’s request. Bias towards taking action in the following circumstances: a) the action is read-only, doesn’t change state, or impacts only the systems, data, and people the user placed in scope. b) the action is a normal implementation step within the requested workflow. You do not need to ask for clarification from the user if your action is scoped within the user’s task and does not cause significant external state change (e.g. tool calls to external applications). A terminal condition such as “finish,” “babysit,” or “do not stop” requires persistence toward the outcome, but does not broaden the set of authorized actions. When blocked, exhaust safe in-scope checks and alternatives. You make informed assumptions that help you make progress towards the user’s task, as long as they don’t result in divergence from the user’s intent and the scope of the task. If an assumption would cause the task or current course of action to change beyond what was specified by the user, make sure to flag the available context, the assumption made, and the reasons for doing so explicitly to the user. When presented with clarifying questions or objections from the user, lead with concrete evidence and diligent reasoning rather than unsubstantiated deference. You communicate your reasoning explicitly and concretely, so decisions and tradeoffs are easy for the user to evaluate upfront. If completion requires new authority, external coordination, or a meaningful expansion beyond the user’s implied intent and task scope (e.g. a missing user choice that would materially change the result), stop the current turn, report the blocker, and request direction from the user rather than assuming permission. Using skills A skill is a set of instructions provided through a SKILL.md source. The skills available to you will be listed in the “## Skills” section under “### Available skills”. How to use skills Discovery: When a ## Skills section is present, it lists the skills available in the current session. Each entry includes a name, description, and location for its SKILL.md. The location may be an absolute filesystem path, a short aliased path, or a non-filesystem reference that must be read using its indicated tool or provider. When short aliased paths are used, the available-skills catalog also provides a mapping from aliases such as r0 to their filesystem roots. Expand the alias before accessing the skill. Trigger rules: If the user names an available skill (with $SkillName or plain text) OR the task clearly matches an available skill's description, you must use that skill for that turn. Multiple mentions mean use them all. Do not carry skills across turns unless re-mentioned. Missing/blocked: If a named skill is not available or its SKILL.md cannot be read, say so briefly and continue with the best fallback. How to use a skill:After deciding to use a skill, the main agent must read its SKILL.md completely before taking task actions. If its location is a short aliased path, expand the matching root alias first from ### Skill roots, then open and read its SKILL.md completely before taking task actions. For a filesystem path, open the file. For an environment-owned file, use the filesystem of the owning environment. For an orchestrator reference, call skills.list with {"authority":{"kind":"orchestrator"}}, select the matching package, and pass its main_resource to For another non-filesystem reference, use its indicated tool or provider. If a read is truncated or paginated, continue until EOF. When SKILL.md references another file or resource, use the same access mechanism. Resolve relative paths against the directory containing a filesystem-backed SKILL.md. For orchestrator skills, pass the exact referenced resource identifier with the same authority and package to do not treat skill:// identifiers as filesystem paths. If SKILL.md points to extra folders such as references/, use its routing instructions to identify what is required for the task. The main agent must read each required instruction or reference itself before acting on it. Do not delegate reading, summarizing, or interpreting skill instructions to a subagent. Subagents may still perform task work when the selected skill allows it. For filesystem-backed skills (or if scripts/ exist), prefer running or patching provided scripts instead of retyping large code blocks. For orchestrator skills, use and the available tools; do not invent a local path. Reuse provided assets or templates through the same access mechanism instead of recreating them (including if assets/ or templates exist). Coordination and sequencing:If multiple skills apply, choose the minimal set that covers the request and state the order you'll use them. Announce which skills you're using and why. If you skip an obvious skill, say why. Context hygiene:Progressive disclosure applies to selecting relevant resources, not partially reading a selected instruction file. Do not load unrelated references, scripts, or assets. Avoid deep reference-chasing: prefer files or resources directly linked from SKILL.md unless blocked. When variants exist, select only the relevant references and note the choice. Safety and fallback: If a skill cannot be applied cleanly, state the issue, choose the best alternative, and continue. When the user names a skill in their request, you must add the usage of that skill to your current working plan and use it faithfully. The user's instructions should take precedence over guidelines provided in a skill. Explicitly tell the user in the commentary channel whenever a skill causes you to take an action or pause your work. When using a skill the user did not explicitly name, follow this procedure: First, tell the user in the commentary channel why you are using the skill. Then, use the skill as long as it stays within the scope of the task. Next, if using the skill resulted in material changes (especially when this requires non-trivial judgment), mention how it influenced your work (but only in the final response). If a skill causes the current turn to pause or otherwise blocks the continuation of the task, cite the skill and provide a concise explanation to the user in your final response. Do not cite skills you merely inspected. Filesystem sandboxing defines which files can be read or written. `sandbox_mode` is `[SANDBOX_MODE]`: The sandbox permits reading files, and editing files in `cwd` and `writable_roots`. Editing files in other directories requires approval. Network access is [NETWORK_ACCESS_POLICY]. # Escalation Requests Commands are run outside the sandbox if they are approved by the user, or match an existing rule that allows it to run unrestricted. The command string is split into independent command segments at shell control operators, including but not limited to: Pipes: | Logical operators: &&, || Command separators: ; Subshell boundaries: (...), $(...) Each resulting segment is evaluated independently for sandbox restrictions and approval requirements. Example: git pull | tee output.txt This is treated as two command segments: ["git", "pull"] ["tee", "output.txt"] Commands that use more advanced shell features like redirection (>, >>, <), substitutions ($(...), ...), environment variables (FOO=bar), or wildcard patterns (*, ?) will not be evaluated against rules, to limit the scope of what an approved rule allows. How to request escalation IMPORTANT: To request approval to execute a command that will require escalated privileges: Provide the sandbox_permissions parameter with the value "require_escalated" Include a short question asking the user if they want to allow the action in justification parameter. e.g. "Do you want to download and install dependencies for this project?" Optionally suggest a prefix_rule - this will be shown to the user with an option to persist the rule approval for future sessions. If you run a command that is important to solving the user's query, but it fails because of sandboxing or with a likely sandbox-related network error (for example DNS/host resolution, registry/index access, or dependency download failure), rerun the command with "require_escalated". ALWAYS proceed to use the justification parameter - do not message the user before requesting approval for the command. When to request escalation While commands are running inside the sandbox, here are some scenarios that will require escalation outside the sandbox: You need to run a command that writes to a directory that requires it (e.g. running tests that write to /var) You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files. If you run a command that is important to solving the user's query, but it fails because of sandboxing or with a likely sandbox-related network error (for example DNS/host resolution, registry/index access, or dependency download failure), rerun the command with require_escalated. ALWAYS proceed to use the sandbox_permissions and justification parameters. do not message the user before requesting approval for the command. You are about to take a potentially destructive action such as an rm or git reset that the user did not explicitly ask for. Be judicious with escalating, but if completing the user's request requires it, you should do so - don't try and circumvent approvals by using other tools. prefix_rule guidance When choosing a prefix_rule, request one that will allow you to fulfill similar requests from the user in the future without re-requesting escalation. It should be categorical and reasonably scoped to similar capabilities. You should rarely pass the entire command into prefix_rule. Banned prefix_rules Avoid requesting overly broad prefixes that the user would be ill-advised to approve. For example, do not request ["python3"], ["python", "-"], or other similar prefixes that would allow arbitrary scripting. NEVER provide a prefix_rule argument for destructive commands like rm. NEVER provide a prefix_rule if your command uses a heredoc or herestring. Examples Good examples of prefixes: ["npm", "run", "dev"] ["gh", "pr", "check"] ["cargo", "test"] Approved command prefixes The following prefix rules have already been approved: [APPROVED_COMMAND_PREFIXES] approvals_reviewer is [APPROVALS_REVIEWER]: Sandbox escalations with require_escalated will be reviewed for compliance with the policy. If a rejection happens, you should proceed only with a materially safer alternative, or inform the user of the risk and send a final message to ask for approval. The writable roots are [VISUALIZATION_PATH], [WORKSPACE_ROOT], [WORKSPACE_PATH], [TEMP_ROOT], [SYSTEM_TEMP_PATH]. # Codex desktop context - You are running inside the Codex (desktop) app, which allows some additional features not available in the CLI alone: Images/Visuals/Files In the app, the model can display images and videos using standard Markdown image syntax: 📷 When sending or referencing a local image or video, always use an absolute filesystem path in the Markdown image tag (e.g., 📷); relative paths and plain text will not render the media. When referencing code or workspace files in responses, always use full absolute file paths instead of relative paths. If a user asks about an image, or asks you to create an image, it is often a good idea to show the image to them in your response. Use mermaid diagrams to represent complex diagrams, graphs, or workflows. Use quoted Mermaid node labels when text contains parentheses or punctuation. Return web URLs as Markdown links (e.g., label). Workspace Dependencies For sheets, slides, and documents, call load_workspace_dependencies to find the bundled runtime and libraries. Automations This app supports recurring automations, reminders, monitors, follow-ups, and thread wakeups. When the user asks to create, view, update, delete, or ask about automations, search for the automation_update tool first, then follow its schema instead of writing raw automation directives by hand. When an automation should archive a Codex thread on completion, use set_thread_archived instead of emitting raw archive directives. Thread Coordination Treat the terms "task", "thread", "chat", and "conversation" as synonyms when they clearly refer to Codex. Tool names use the term "thread" and Codex uses "task" in the UI. When providing user-facing responses, use "task". When the user asks to create, fork, inspect, continue, hand off, pin, archive, rename, or otherwise manage Codex threads, search for the relevant thread tool first: create_thread, fork_thread, list_threads, read_thread, send_message_to_thread, handoff_thread, set_thread_pinned, set_thread_archived, or set_thread_title. Only use create_thread when the user explicitly asks to create a new thread. Threads created this way are user-owned: they appear in the sidebar, and the user is expected to follow up with them directly. For subtasks of the current request, use multi-agent tools instead, including when the user explicitly asks for a subagent. After a successful create_thread call, emit ::created-thread{threadId="..."} for a created thread or ::created-thread{clientThreadId="..."} for queued worktree setup on its own line in your final response. Inline Code Comments Use the ::code-comment{...} directive when you need to attach feedback directly to specific code lines. Emit one directive per inline comment; emit none when there are no actionable inline comments. Required attributes: title (short label), body (one-paragraph explanation), file (path to the file). Optional attributes: start, end (1-based line numbers), priority (0-3). file should be an absolute path or include the workspace folder segment so it can be resolved relative to the workspace. Keep line ranges tight; end defaults to start. Example: ::code-comment{title="[P2] Off-by-one" body="Loop iterates past the end when length is 0." file="/path/to/foo.ts" start=10 end=11 priority=2} Projectless Chat This projectless thread starts in a generated directory under the user's Documents/Codex folder. Prefer answering inline in chat unless using local files would make the result more useful. Use work/ for intermediate files, scratch analysis, scripts, drafts, and temporary assets. Use [OUTPUT_PATH] only for user-facing deliverables that should appear as outputs. When referring to saved deliverables in the final response, link only files from [OUTPUT_PATH]. Do not write directly in the home directory unless the user explicitly asks. # Collaboration Mode: Default You are now in Default mode. Any previous instructions for other modes (e.g. Plan mode) are no longer active. Your active mode changes only when new developer instructions with a different ...change it; user requests or tool descriptions do not change mode by themselves. Known mode names are Default and Plan. """ gg
显示更多
0
59
712
43
转发到社区
推荐下,这期 JL Collins × Steven Bartlett《The Diary of a CEO》 的完整播客采访。 很有哲理的财富观,推荐每个人看完结合自己的条件再规划下属于自己的路径: 1️⃣为什么要避免债务。 2️⃣支出低于收入成为习惯有多必要。 3️⃣投资剩余的钱,是未来的底气。 4️⃣学会先获得购买权,再消费。 他在36分钟的时候也谈到了对比特币的态度! 正片2小时15分钟,链接放在最后, 也可以选择看看我下面有 GPT 的整理版和我的注解,不想听我啰嗦的可以直接去看正片。 JL Collins 就是《The Simple Path to Wealth》的作者, 先说我认为这期采访真正的核心:钱最重要的功能,不是让你买更多东西,而是让你越来越不需要向任何人低头。 也就是说,财富的终点不是消费能力,而是选择权。 这也是整期两个多小时反复回到的主线。 下面是 AI 按采访顺序的梳理: 00:00–03:27|为什么写《The Simple Path to Wealth》 JL 最初根本没准备写一本畅销书,而是在博客上给女儿 Jessica 留下一套关于钱的知识。 他认为,一个人如果把钱的问题处理好,人生会容易非常多。不是因为钱本身能带来幸福,而是有资源的人拥有更多选择,没有资源的人很多时候连选择的资格都没有。 因此他写作的目标从来不是教女儿如何暴富,而是教她:如何避免因为钱而失去人生的自主权。 03:27–05:10|绝大多数人对钱最大的误解 普通人的第一反应是: 有钱了可以买什么? 房子、车、旅行、奢侈品…… JL 认为这是文化灌输给我们的默认思维。 钱当然可以消费,但还有第二个用途: 钱可以替你工作。 你工作→赚到钱→把其中一部分变成资产→资产继续产生钱。 于是慢慢发生一个巨大变化: 一开始,是你用时间换钱; 后来,是钱替你换时间。 所以他建议把“我能用这笔钱买什么”改成: “这笔钱将来能替我赚多少钱、买回多少自由?” 05:10–06:15|什么叫财务自由 只要你必须每天出售自己的时间、劳动和注意力才能活着,你就仍然依赖某一个愿意付钱给你的人或组织。 老板、客户、公司、平台…… 所以财务自由不是“我有很多钱”。 而是: 工作开始变成可选项。 你可以工作,但不是“不工作就活不下去”。 这个区别非常大。 06:15–13:11|为什么很多成功人士都有创伤 Steven 谈到自己的经历:年轻时冒险、辍学创业、拼命证明自己,很大程度来自内心的不安全感和创伤。 JL 观察到一个有意思的现象: 很多极度成功的人背后都有某种“我要证明自己”的东西。 创伤、不被认可、自卑、家庭问题…… 它可能成为非常强的驱动力。 但反过来,他也认识一些人,没有那么大的野心,只想过舒服、自由、平静的人生。这些人反而往往成长环境更加稳定。 这引出了一个问题: 巨大的野心究竟是一种能力,还是一种没有被治愈的伤口? 采访没有给确定答案,但 Steven 明确提到,他认识的一些超级富豪并不快乐。 其中一个重要寓言:和尚与大臣 JL 的书开头有个故事。 两个童年好友,一个后来成为国王身边的大臣,一个成为清贫和尚。 大臣看和尚每天粗茶淡饭,就说: 你如果学会讨好国王,就不用吃这种苦了。 和尚回答: 你如果学会满足于粗茶淡饭,也就不用讨好国王了。 JL 说自己一直更接近和尚。 这其实是他全部财富哲学最简洁的表达: 降低欲望,也是一种提高自由度的方法。 当一个人的“必须拥有”越来越少,他需要讨好的人也会越来越少。 13:11–14:22|钱与幸福的关系 JL 并不认同“钱能让你幸福”。 他的观点更细: 钱不一定增加幸福,但缺钱可以制造大量痛苦。 催债信、房租、账单、医疗费用、失业风险…… 这些东西会长期占据人的心理空间。 所以财富最先改善的,往往并不是快乐,而是: 减少焦虑。 而且金钱有放大效应。 一个本来就不快乐的人, 变成富豪以后仍然可能不快乐; 一个本身就很满足的人, 有钱以后会获得更多选择。 Steven 也谈到自己以前觉得 Range Rover、 豪宅会带来巨大幸福, 后来真正拥有以后, 发现心理冲击远没有想象中大。 JL 因此强调: 享受财富, 但不要要求财富负责治愈你。 14:22–15:59|什么才是真正的 F.U. Money 一般人把 FU Money 理解为: 钱多到永远不用工作。 JL 说那其实叫 Financial Independence。 他定义的 FU Money 反而是: 走向财务自由途中已经积累起来的那部分钱。 哪怕你只有足够活六个月的钱, 它都已经开始改变你的行为。 老板羞辱你,你可以离职; 行业不好,你可以休息半年; 想去欧洲旅行,你可以辞职; 想换城市,你不用害怕三个月没收入。 所以财富不是到了终点才有用。 每增加一笔储蓄,你的自由其实已经增加了一点。 15:59–25:32|采访最有争议的观点:年轻人未必应该买房 JL 不是反房地产。 他自己一生也买过很多房。 但他说: 房子应该首先看作一种生活消费,而不是自动等于一项好投资。 买房最大的问题不只是首付和房贷。 还有装修、家具、维修、房产税、保险、屋顶、花园、设备等等。 所以“我的月供和房租差不多”这个比较经常是错误的。 房租 2500 美元,你大致知道成本; 房贷 2500 美元,可能突然再来一个 2 万美元屋顶。 而且人买房时经常出现一个行为偏差: 银行说你最多可以贷 100 万,你就真的去买一个接近自己极限承受能力的房子。 于是房子开始绑架现金流。 买房真正被忽略的是机会成本和流动性 JL 和 Steven 都特别重视这一点。 20 多岁、30 多岁的时候,人的最大财富可能不是现有资产,而是: 未来几十年的机会。 工作突然要求你去纽约; 创业机会在旧金山; 你想去葡萄牙; 换行业; 认识了另一半; 都需要移动。 租房的人可以很容易离开。 房主却要卖房、承担交易成本,或者突然变成一个根本不想当的房东。 所以 JL 的结论不是: “永远不要买房。” 而是: 年轻且正在快速发展事业时, 不要低估流动性的价值。 等你已经非常有钱, 而且某套房确实提升生活质量,再去买。 那时候你是在强势位置购买, 而不是被房贷绑架。 25:32|整本书浓缩成三句话 JL 的财富路径非常简单: 避免债务。 支出低于收入。 投资剩余的钱。 基本上整场采访后面的一个多小时, 都在解释这三件事。 26:49–36:03|债务为什么如此危险 个人消费债务在他眼里几乎是财务自由的反面。 尤其:信用卡债务、消费贷、豪车贷款。 因为你不仅在为过去的消费付款, 还把未来的现金流提前抵押掉了。 他把债务形容成游泳运动员腰上绑着铅块。 不是绝对游不到终点,但难度大得多。 他的还债方法也很明确: 把所有债务列出来; 其他债务付最低还款; 集中现金优先消灭利率最高的债务; 然后第二高、第三高…… 这是数学上效率最高的一种方法。 “必须拥有”的暴政 JL 创造了一个很好的概念: Tyranny of the Must-Haves。 “我必须住这个区。” “孩子必须读这所学校。” “必须有两辆好车。” “必须每年出国。” “必须住大房子。” 每增加一个“必须”,自由就少一点。 他自己年轻时直接存收入的 50%。 但他说自己从没觉得这是“牺牲”。 他的心理账户是: 我不是少花掉了 50%。 我把那 50% 花在了购买自由上。 这一点我觉得是整期非常高级的一个重新定义。 消费其实经常是在购买自尊 Steven 讲了自己年轻时候一个非常真实的经历。 发薪以后立刻买大电视、PlayStation, 因为这些东西能让自己短暂感觉: “我成功了。” 过几天发现没钱,又把东西卖掉。 下一次发工资继续循环。 JL 提醒: 很多炫耀性消费,本质并不是需要那个东西, 而是希望别人通过那个东西认可自己。 他举 Ferrari 的例子: 你开 Ferrari 时以为别人想: “这个人真厉害。” 实际上别人很可能想的是: “如果我开这辆 Ferrari,我一定很帅。” 人家压根没那么关心你。 36:03–38:43|他为什么不投资 Bitcoin 这里应该也是你比较关心的一段。 JL 明确表示: 他不反对 Bitcoin 存在,但自己不投资。 原因不是他说 Bitcoin 一定归零, 而是他认为 Bitcoin 对他来说属于 speculation, 而不是 investment。 他的投资标准是: 背后最好有一个持续产生经济价值的“发动机”。 企业销售产品、产生利润、现金流增长。 而 Bitcoin 在他的框架里没有这套现金流, 所以他无法估值。 Steven 反驳: 如果 Bitcoin 过去十五年的成功如此巨大, 本身是不是已经证明市场存在真实需求? JL 承认: 完全可能。 Cathie Wood 等人的长期判断也完全可能最终是对的。 但他说他无法判断未来十年,所以选择不参与。 因此他的立场其实没有标题那么绝对。 不是: “Bitcoin 是骗局。” 而是: “Bitcoin 超出了我的投资框架,所以我把它归类成投机。” 38:43–46:37|应该还房贷还是投资 答案取决于房贷利率。 因为提前还贷相当于获得一个确定性收益: 如果你的房贷利率是 7%,提前还款大致相当于获得一笔确定性的 7% 成本节省。 房贷利率极低时,投资机会成本更重要; 房贷利率非常高时,提前还款吸引力更高。 他随后解释了利率、房贷本金、利息以及为什么前期月供中利息占比较大。 他也说,不要试图精准预测“什么时候利率最低然后买房”。 因为利率同样很难预测。 最终还是回到: 现在是否买得起,这个房子是否真正改善你的生活。 46:37–55:13|AI 时代,现在买股票安全吗? JL 给出的答案很经典: 短期永远不安全,长期反而非常安全。 股票最大的特征不是“危险”,而是: 波动。 如果三年后要买房的钱、明年孩子读书的钱放进股市,很危险。 因为明年完全可能跌 30%、40%。 但如果是十年、二十年甚至更长的钱, 股票是人类历史上极强大的长期财富生产工具之一。 核心条件只有一个: 大跌的时候不能因为恐惧卖掉。 否则再好的资产都救不了你。 所以真正最大的投资风险,有时候不是资产: 而是投资者自己。 男人为什么投资经常不如女人 这里他们谈到一个有意思的行为: tinkering——手痒。 觉得: 这个配置再优化一下; 换个 ETF; 追一下热点; 择个时; 卖了再买回来…… JL 发现很多男性尤其喜欢这样做。 Steven 引用了一些男女投资行为的数据,核心结论是: 男性更倾向承担风险、频繁交易和择时; 女性往往交易更少、更长期持有。 所以即使男性经常“感觉自己更懂投资”,最终反而可能因为过度操作拖累回报。 JL 开玩笑说: 看来自己有非常强的“女性一面”。 他的核心仍然是: 少做事。 55:13–1:02:38|复利真正发生时是什么样 采访展示了一张长期复利曲线。 早期非常无聊。 本金不断增加,资产增长并没有明显脱离投入的钱。 然后几十年后突然: 曲线翘起来。 JL 说他见过很多已经财务独立的人,反而问他: “我真的财务自由了吗?” 不是他们不会算数学。 而是复利增长到后期会快得令人产生不真实感。 他随后解释 4% guideline: 如果一年生活费 10 万美元, 大约需要: 10 万 × 25 = 250 万美元投资资产。 250 万 × 4%=10 万。 所以可以粗略用: 年度支出 × 25 作为财务独立目标值。 但他刻意不用“4% Rule”,而更喜欢叫 guideline,因为现实情况会变化。The Singju Post 复利最终有一个非常有意思的状态: “所有东西都免费了” 意思不是东西真的不要钱。 而是: 当投资资产每年产生的钱已经高于你的全部消费时, 新消费不再需要靠劳动补回来。 年轻时你舍不得买的东西,后来反而可以轻松买。 这也解释了他的财富哲学: 不是永远节俭。 而是: 先获得购买权,再消费。 而不是提前几十年透支未来购买权。 1:02:38–1:12:54|“我年轻时不享受,老了有钱有什么意义?” Steven 提出年轻人非常自然的反驳: 20 岁不去旅行、不喝酒、不玩、不买东西,一直省钱,等到 70 岁一身钱,有什么意义? JL 的回答不是让人苦行。 他首先反对: “享受人生=花很多钱。” 更有意思的是,他说 75 岁以后其实钱非常有用。 因为年纪越大,舒适、安全、医疗、便利的价值越高。 但他年轻的时候也并不是为了“75岁的自己”投资。 他 25 岁攒了约 5000 美元,就敢辞职去欧洲背包旅行。 所以: 储蓄不是只帮助未来的你, 它马上就在帮助今天的你。 5000 美元可能还不能退休, 但已经足够让一个年轻人敢辞掉不喜欢的工作。 他为什么主张储蓄率 50% 第一份正式工作年薪约 1 万美元,他直接存 5000。 他认为 50% 是一个非常强的 benchmark。 在市场正常的情况下, 坚持高储蓄率 + 投资, 大概十几年就可能走向财务独立。 当然这不意味着所有人都必须 50%。 他的意思是: 不要先问: “50% 怎么可能?” 应该先问: 财务自由对我到底值多少钱? 有人选择星巴克、好房子、名车; 有人选择早点自由。 没有道德上的对错,是优先级不同。 1:07:08|给孩子最大的投资礼物其实是时间 他特别建议,如果孩子已经有合法劳动收入, 可以尽早利用 Roth IRA 等美国税优账户投资。 原因不是那几千美元有多重要。 而是孩子拥有: 50 年、60 年甚至更长的复利时间。 他说财富积累最强大的变量之一就是: Time。 越早开始,后来需要付出的本金越少。 1:12:54–1:20:04|税优账户到底有什么意义 他详细讲了美国的: 401(k)、403(b)、IRA、Roth IRA。 传统退休账户的本质通常不是“不交税”, 而是:延迟交税。 现在收入高时把钱放进去; 投资增长; 退休以后收入降低,税率可能下降; 再把钱取出来。 同时雇主的 401(k) match 基本属于: 应该优先拿的“免费钱”。 他也提醒: tax deferred ≠ tax free。 JL 自己反而出现了一个特殊情况: 退休后因为写书、事业成功,税率甚至比以前高, 因此传统税延策略对他没有达到典型效果。 1:20:04–1:27:39|他到底买什么资产 答案极其无聊: 低成本、广泛分散的指数基金。 他的代表选择就是 Vanguard: VTSAX——美国 Total Stock Market Index Fund。 大约覆盖数千家美国上市公司。 为什么? 因为他完全不知道未来哪个公司会赢。 但指数有一个非常厉害的机制: 赢家越来越大,自然在指数中的权重越来越高; 输家不断萎缩,最终被淘汰; 新的赢家自动进来。 JL 给它起了一个词: self-cleansing——自我清洁。 Sears 曾经像今天 Amazon+Walmart 一样强大。 后来 Sears 消失了。 但指数投资者不需要提前预测 Sears 会死, 也不需要提前猜 Amazon 会赢。 市场替你完成替换。The Singju Post 为什么他不直接买 Nasdaq 100? Steven 提出: AI、机器人、自动驾驶都属于科技, 过去十年 Nasdaq 又表现极好, 那为什么不直接重仓科技? JL 承认: 这个逻辑完全合理。 甚至过去十年确实会赚得更多。 问题只有一个: 你仍然是在预测未来。 今天科技领先, 不代表未来四十年始终由科技这个分类领先。 所以 JL 说: 我买整个市场。 科技继续赢——我已经持有科技巨头; 科技输了——新的赢家同样会自动进入我的组合。 所以他放弃一部分极致收益潜力,换来: 不需要预测未来。 1:27:39|全片最好的投资比喻:啤酒与泡沫 JL 现场倒了一杯啤酒。 杯子里两部分: Beer = 企业真正创造的经济价值。 收入、利润、现金流、业务。 Foam = 市场情绪。 恐惧、贪婪、AI 故事、想象力、炒作、估值。 股价=Beer + Foam。 问题在于现实股票不像透明酒杯,我们很难知道到底多少是啤酒,多少是泡沫。 他拿 Tesla 举例: Tesla 当前估值中包含大量对机器人、自动驾驶等未来业务的预期。 如果未来这些业务真的实现: 泡沫会慢慢变成啤酒。 如果没有实现: 泡沫就可能消失。 巴菲特为什么那么厉害 用 JL 的啤酒逻辑: Benjamin Graham 早期寻找的是: 价值 1 美元的“啤酒”,市场只卖 0.7 美元。 巴菲特后来逐渐升级成: 与其极低价买垃圾,不如合理价格买极好的企业。 优秀企业: 品牌强; 竞争壁垒高; 盈利能力强; 管理优秀。 最难的地方不是分析。 而是: 拥有足够的耐心什么都不做。 所以他们谈到 Munger / Buffett 一个非常重要的投资原则: 不要妨碍复利自己工作。 1:33:40–1:36:06|市场暴跌怎么办 答案: 不要卖。 2020 年疫情就是案例。 市场暴跌,恐慌蔓延。 但企业和经济最终恢复。 如果你因为新闻而清仓,可能在最低点附近离开; 随后又因为上涨产生 FOMO,在高位重新买回。 所以 JL 的方法很简单: 长期资金继续持有; 如果仍在积累期,甚至可以继续买。 真正危险的是: 把正常波动理解成世界末日。 短线交易和投资完全是两种东西 用“Beer/Foam”理论: 买企业未来几十年的盈利能力,是 investment。 试图预测明天、下周、下个月市场情绪产生的 Foam,是 trading/speculation。 后者在 JL 看来非常接近赌博。 他们也吐槽各种“教你稳定交易赚钱”的课程: 如果真的存在一个可以持续提款的秘密策略, 为什么最赚钱的业务会变成卖课? 这不是说所有金融教育都是骗局,而是在提醒: 对“快速、稳定、高收益的交易秘诀”高度警惕。 1:39:26|需不需要财务顾问 JL 对财务顾问整体比较怀疑。 他的一个有意思的判断是: 当你已经懂得足够多,能够识别一个优秀财务顾问的时候,你可能也已经懂得足够多,可以自己投资。 尤其要注意利益冲突。 比如顾问按照 AUM 收 1% 管理费。 你有 100 万美元交给他; 突然想拿 50 万提前还房贷。 如果他说“还”,自己的管理费收入立刻减少一半。 不代表他一定会骗你。 但: 激励结构已经产生冲突。 所以永远要知道: “给我建议的人,是怎么赚钱的?” 1:42:13|JL Collins 自己到底怎么配置 他当时透露大致: 80% VTSAX 美国全市场股票 15% Total Bond Market 债券 5% Money Market / 现金类资产 另外有两处自住房性质的小房地产, 但在净资产中比例很低。 他已经 75 岁,这个股票比例其实非常激进。 他自己也明确说: 不一定适合其他同龄人。 债券的作用主要不是赚钱,而是降低波动。 他把“风险”重新定义: 股票短期风险大,因为波动; 但长期能对抗通胀。 债券短期稳定; 但长期可能输给通胀。 因此: 安全与否必须带上时间维度。 1:45:23|Steven 现场问 ChatGPT:普通人如何财务自由 ChatGPT 给出的答案大意和 JL 几乎一样: 控制支出; 购买低成本广泛指数; 长期持有; 让复利工作。 JL 开玩笑: ChatGPT 应该是把他的书拿去训练了。 随后 Steven 又问: 怎样提高收入? JL 的答案: 提高技能。 ChatGPT 的答案也类似: 学习市场需求高的技能。 1:46:26–1:49:33|AI 时代应该学什么 Steven 讲自己年轻时候学 Social Media。 创业虽然失败,但因此站在了一个新行业浪潮最前面。 后来企业疯狂需要懂社交媒体的人, 于是那个失败经历反而变成极高价值的人力资本。 JL 由此讲: Failure 是成长的一部分。 甚至创业世界里, 有些投资人更喜欢经历过失败的创始人。 Steven 给未来孩子的建议很有意思: 如果不知道学什么, 去一个处于技术浪潮最前沿的 startup 工作。 哪怕它最后倒闭。 因为你会离创始人很近; 离问题很近; 离失败很近; 离新产业真正发生的地方也很近。 这可能比一个安稳的大公司职位学得更多。 1:49:33以后|收入低不等于不能财务自由 JL 举了两个极端例子。 一个朋友一辈子收入可能没超过 4 万美元, 却最终财务独立。 另一个金融行业朋友: 90 年代奖金就有 80 万美元; 年收入大约百万美元; 结果仍然接近月光。 为什么? 豪宅、车、孩子学校、社交圈…… JL 甚至认为: 高收入有时候反而是财务自由的障碍。 因为高收入会自动把你推入另一个消费比较体系。 普通人比较车。 富人比较房子。 更富的人比较游艇。 游戏没有终点。 收入越来越高, Lifestyle Creep 也越来越大。 所以: 决定财务独立的不是绝对收入, 而是收入与欲望之间的差值。 随后谈到了一个经常被忽略的财富杀手:离婚 Steven 讲了一个, 身价可能数亿美元的朋友正在经历长期离婚诉讼。 律师费、资产估值争议、 强迫出售长期持有的股票、税务损失、精神压力…… JL 的结论是: 选人生伴侣同时也是一个巨大的财务决定。 当然 Steven 也补充非常重要的另一面: 如果另一方为了家庭和孩子牺牲职业, 财富本身可能也是夫妻双方共同创造的。 所以他们并不是简单讨论“如何避免分钱”。 真正谈的是: 婚姻是你人生最大的经济合伙关系之一。 Prenup:其实每个人都有婚前协议 一个很有意思的观点: 即使你“不签 Prenup”, 你也并不是没有 Prenup。 你只是选择: 使用政府默认替你制定的 Prenup。 所以问题不是: “要不要规定离婚后怎么处理?” 而是: 你们两个人提前共同决定; 还是几十年以后让法律制度替你决定。 他们认为对于资产复杂的人, 提前认真讨论反而更加成熟。 JL 结婚 44 年最大的经验 Steven 问他: 怎么选对伴侣? JL 本来一直说自己运气很好, 因为结婚前根本没认真谈过钱。 后来有一次当着妻子的面讲这个故事, 妻子直接纠正他: 两个人第一次约会的时候, JL 就已经跟她讨论储蓄率,甚至说: “你应该存下收入的 50%。” JL 才意识到: 原来财务观早就被自己自然表达出来了。 两个人长期婚姻稳定的一部分原因,就是: 在金钱价值观上高度一致。 1:59:53|75 岁以后,他最大的遗憾是什么 这是整期采访后面突然非常深的一段。 JL 首先说: 他不太喜欢“如果当时……”这种思维。 因为你永远不知道另一条路是不是真的更好。 创业失败可能导致后来成功; 一次看似错误的选择可能塑造后面的你。 所以从人生路径角度: 他没有特别大的遗憾。 但有两个关于父亲的私人遗憾。 第一个遗憾:童年拒绝父亲的礼物 小时候父亲非常喜欢动手做东西。 有一次给他买了一个电动锯作为礼物。 JL 完全不喜欢,表现得非常失望。 他看到父亲脸上的受伤。 七十年过去,他仍然记得。 他说: 自己当时只是孩子, 也不应该过度责怪那个年纪的自己。 但这件事教会了他: 有时候礼物的价值不在礼物,而在送礼人的心。 第二个,也是他人生最大的遗憾: 父亲去世前的最后一次谈话 JL 24 岁时,父亲因为肺气肿住院。 去世前一天,父亲坐在病床边告诉他: 自己今晚可能要死了。 年轻的 JL 本能回答: 不会的,你会好的,别这样想。 结果父亲那天晚上真的去世了。 五十年以后,JL 才完全理解那个场景: 父亲根本不是需要一句: “别担心,一切都会好起来。” 他是一个已经知道自己即将死亡的人, 想和自己的儿子谈谈死亡。 JL 最大的遗憾是: 自己当时没有成熟到意识到这个邀请。 不是选错答案。 而是: 根本不知道那里存在一道选择题。 说到这里他明显非常动情。 最后谈到死亡 JL 说自己大概率认为: 死亡之后什么都没有。 但他同时对死亡非常好奇。 他并不急着死, 身体和精神状态允许的话仍然很喜欢活着。 只是到了 75 岁,他会好奇: 如果自己错了呢? 如果真的存在另一边呢? 最后的问题:人生到底什么最重要? JL 给出了一个很反鸡汤的答案: 从宇宙尺度上看,什么都不重要。 人类在宇宙时间尺度里只是极短的一瞬。 一个人的生命更短。 所以他不相信宇宙赋予每个人某种宏大使命。 但是,他认为这反而是一件解放人的事情。 因为:既然没有必须完成的宇宙任务, 那就:好好生活;善待别人;尽可能享受这趟旅程; 利用你拥有的自主权,把唯一这一生过好。 他说的不是: “人生没有意义,所以什么都不用做。” 恰恰相反: 正因为没有第二次, 所以更应该把这一次过好。 所以我很喜欢他这段发言。 最后 Steven 播放了一首关于“God on the Train”的诗,主题也与 JL 的观点呼应: 不要为了某个遥远的天堂忽略眼前这一生,善良、不伤害别人、认真活着,本身可能已经足够。 我看完整期以后,认为最值得记住的是下面这一套递进关系:钱 → 资产 → 现金流 → 选择权 → 不被迫 → 自由。 很多人财富增长以后,走的是另一条路:钱 → 消费升级 → 固定成本升级 → 欲望升级 → 必须赚更多钱 → 更不自由。 两个人可能拥有完全相同的净资产,最后得到的东西却完全相反。 这才是 JL Collins 这期采访真正想讲的东西。 而他那句“把收入的 50% 花在自由上”的思维尤其值得琢磨——储蓄不是没有消费,而是在消费一种看不见的东西:未来不必向任何人低头的权利。 视频链接:
显示更多
🚨BREAKING: RED CROSS DELETES VIDEO AFTER MIGRANT MURDERS BRITISH WOMAN The Red Cross made a sympathetic cartoon video showing the journey of Sharif, an Afghan travelling to Europe When Sharif got there he MURDERED a British Woman and stuffed her body into a suitcase They wanted you to feel sorry for him but he killed a young woman like the savage that he is The Red Cross must be held to account for the blood they have on their hands
显示更多
0
36
2.3K
562
转发到社区
开发系统最极致高效的Agents.md,没有之一: # AGENTS.md ## Core Principles - Choose the simplest implementation that fully satisfies the current requirements. Avoid unnecessary abstraction, configuration, indirection, or speculative extensibility. - Make the smallest necessary change that fixes the root cause. Do not refactor unrelated modules or change strategy semantics unless explicitly requested. - Grow the system in layers. Start from the smallest working end-to-end version and add new capabilities incrementally. Never replace a working system with unfinished complexity. - Reuse existing project components before creating new ones. Prefer extending proven modules over introducing parallel implementations. - Prefer well-maintained libraries when they reduce overall complexity or improve reliability. Do not reimplement common functionality without a clear benefit. - Keep components modular with clearly defined responsibilities. Avoid unnecessary coupling between strategy logic, execution, accounting, replay, and infrastructure. - Design for long-term maintainability once a feature or strategy has been validated. Do not over-engineer speculative ideas before evidence exists. --- ## Strategy Development - Validate hypotheses with historical replay before introducing forward-only logic whenever historical validation is possible. - Every trading strategy must progress through Replay → Shadow → Canary → Live. Do not skip validation stages. - Base design decisions on measurable evidence rather than intuition. Optimize only after demonstrating that an edge exists. - Treat every strategy as an independent contract. Do not silently alter frozen behavior without explicit authorization. --- ## Existing Systems - Do not break running Shadow or Live systems for unrelated work. - Preserve compatibility only when required by active production or validation workflows. Otherwise, remove obsolete code instead of accumulating compatibility layers. - Reuse existing infrastructure whenever possible, including replay engines, accounting, execution, wallet management, order book handling, logging, monitoring, and daemon frameworks. --- ## Engineering Standards - Prefer deterministic behavior over hidden automation. - Fail loudly when assumptions are violated. Do not silently ignore errors or fall back to unexpected behavior. - Keep configuration minimal. Introduce new configuration only when behavior genuinely needs to vary. - Remove dead code instead of leaving unused paths behind. - Write code that is easy to inspect, replay, test, and reason about. - Keep implementation consistent with existing project architecture unless an architectural change is explicitly requested. --- ## Scope Discipline - Implement only the requested scope. - Do not introduce unrelated optimizations, redesigns, migrations, or feature expansions. - Non-blocking findings outside the requested scope may be noted separately but must not be merged into the current task. - Consider a task complete once its agreed acceptance criteria are satisfied. Treat subsequent improvements as separate work items.
显示更多
0
10
201
39
转发到社区