stock-data-skill
OpenClaw Skill for stock data analysis
Elixir/Phoenix development companion. Run and interpret mix test, mix credo, mix dialyzer, mix format. Generate modules following OTP conventions: contexts, schemas, GenServers, supervisors, tasks. Debug compilation errors and warnings. Help with Ecto migrations, queries, changesets, and associations. Use for any Elixir or Phoenix development task including writing modules, fixing tests, refactoring code, or understanding OTP patterns.
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
SkillHub CLI
skillhub install gchapim/elixir-dev打开来源仓库,查看说明和兼容环境后,按来源提供的命令或步骤安装。
将来源链接提供给你的 Agent,让它先读取说明、核对依赖,并向你说明将执行的安装步骤。
See references/mix-commands.md for full command reference.
# Run all tests
mix test
# Specific file or line
mix test test/my_app/accounts_test.exs:42
# By tag
mix test --only integration
# Failed only (requires --failed flag from prior run)
mix test --failed
# With coverage
mix test --cover
Interpreting failures:
** (MatchError) — Pattern match failed; check return value shape.** (Ecto.NoResultsError) — Repo.get! with non-existent ID; use Repo.get or seed data.** (DBConnection.OwnershipError) — Missing async: true or sandbox setup.no function clause matching — Wrong arity or unexpected arg type.mix credo --strict
mix credo suggest --format json
mix credo explain MyApp.Module # Explain issues for specific module
Common Credo fixes:
Credo.Check.Readability.ModuleDoc — Add @moduledoc.Credo.Check.Refactor.CyclomaticComplexity — Extract helper functions.Credo.Check.Design.TagTODO — Address or remove TODO comments.mix dialyzer
mix dialyzer --format short
Common Dialyzer warnings:
The pattern can never match — Dead code or wrong type in pattern.Function has no local return — Crashes on all paths; check internal calls.The call will never return — Calling a function that always raises.@spec annotations; use @dialyzer {:nowarn_function, func: arity} as last resort.mix format
mix format --check-formatted # CI mode — exit 1 if unformatted
Always include @moduledoc, @doc, and @spec on public functions.
defmodule MyApp.Notifications do
@moduledoc """
Manages notification delivery and preferences.
"""
import Ecto.Query
alias MyApp.Repo
alias MyApp.Notifications.Notification
@doc "List notifications for a user, most recent first."
@spec list_notifi...
这些信息来自收录时的来源分析,可能滞后;使用前请核对最新来源文件。
# Elixir Dev
## Running Mix Commands
See [references/mix-commands.md](references/mix-commands.md) for full command reference.
### Test
```bash
# Run all tests
mix test
# Specific file or line
mix test test/my_app/accounts_test.exs:42
# By tag
mix test --only integration
# Failed only (requires --failed flag from prior run)
mix test --failed
# With coverage
mix test --cover
```
**Interpreting failures:**
- `** (MatchError)` — Pattern match failed; check return value shape.
- `** (Ecto.NoResultsError)` — `Repo.get!` with non-existent ID; use `Repo.get` or seed data.
- `** (DBConnection.OwnershipError)` — Missing `async: true` or sandbox setup.
- `no function clause matching` — Wrong arity or unexpected arg type.
### Credo
```bash
mix credo --strict
mix credo suggest --format json
mix credo explain MyApp.Module # Explain issues for specific module
```
**Common Credo fixes:**
- `Credo.Check.Readability.ModuleDoc` — Add `@moduledoc`.
- `Credo.Check.Refactor.CyclomaticComplexity` — Extract helper functions.
- `Credo.Check.Design.TagTODO` — Address or remove TODO comments.
### Dialyzer
```bash
mix dialyzer
mix dialyzer --format short
```
**Common Dialyzer warnings:**
- `The pattern can never match` — Dead code or wrong type in pattern.
- `Function has no local return` — Crashes on all paths; check internal calls.
- `The call will never return` — Calling a function that always raises.
- Fix: Add `@spec` annotations; use `@dialyzer {:nowarn_function, func: arity}` as last resort.
### Format
```bash
mix format
mix format --check-formatted # CI mode — exit 1 if unformatted
```
## Module Generation
Always include `@moduledoc`, `@doc`, and `@spec` on public functions.
### Context Module
```elixir
defmodule MyApp.Notifications do
@moduledoc """
Manages notification delivery and preferences.
"""
import Ecto.Query
alias MyApp.Repo
alias MyApp.Notifications.Notification
@doc "List notifications for a user, most recent first."
@spec list_notifi...OpenClaw Skill for stock data analysis
Generative Engine Optimization (GEO) for AI search visibility. Optimize content to appear in ChatGPT, Perplexity, Claude, and Google AI Overviews. Use when optimizing websites, pages, or content for LLM discove...
139邮箱邮件收发 Skill - 支持 IMAP/SMTP 协议,兼容139/QQ/163/Gmail等主流邮箱 功能: 1. 发送邮件(SMTP) 2. 接收邮件(IMAP) 3. 查看收件箱列表 4. 查看未读邮件 当用户提到 "发邮件"、"收邮件"、"查看邮件"、"邮箱"...
⚠️ 重要声明