Markdown
facioquo/stock-indicators-dotnet
Format and lint Markdown in this repository against GitHub Flavored Markdown and its markdownlint-cli2 configuration — headers, lists, code fences, callouts (VitePress containers on docs-site pages…
Identify and prevent sales practice violations under FINRA and SEC rules governing broker-dealer conduct.
$ npx skills add JoelLewis/finance_skills --skill sales-practices -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JoelLewis/finance_skills sales-practices --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/compliance/skills/sales-practices .claude/skills/sales-practices && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sales-practices" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/compliance/skills/sales-practices into .claude/skills/sales-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sales-practices", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JoelLewis/finance_skills/tree/main/plugins/compliance/skills/sales-practicesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JoelLewis/finance_skills --skill sales-practices -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JoelLewis/finance_skills sales-practices --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/compliance/skills/sales-practices .agents/skills/sales-practices && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sales-practices" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/compliance/skills/sales-practices into .agents/skills/sales-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sales-practices", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JoelLewis/finance_skills --skill sales-practices -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JoelLewis/finance_skills sales-practices --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/compliance/skills/sales-practices .cursor/skills/sales-practices && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sales-practices" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/compliance/skills/sales-practices into .cursor/skills/sales-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sales-practices", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JoelLewis/finance_skills.git --path plugins/compliance/skills/sales-practices--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JoelLewis/finance_skills --skill sales-practices -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JoelLewis/finance_skills sales-practices --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/compliance/skills/sales-practices .gemini/skills/sales-practices && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sales-practices" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/compliance/skills/sales-practices into .gemini/skills/sales-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sales-practices", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JoelLewis/finance_skills sales-practicesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JoelLewis/finance_skills --skill sales-practices -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/compliance/skills/sales-practices .github/skills/sales-practices && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sales-practices" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/compliance/skills/sales-practices into .github/skills/sales-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sales-practices", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JoelLewis/finance_skills --skill sales-practices -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JoelLewis/finance_skills sales-practices --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/compliance/skills/sales-practices .opencode/skills/sales-practices && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sales-practices" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/compliance/skills/sales-practices into .opencode/skills/sales-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sales-practices", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sales-practicesIdentify and prevent sales practice violations under FINRA and SEC rules governing broker-dealer conduct.
Sales Practices is an agent skill from JoelLewis/finance_skills. Identify and prevent sales practice violations under FINRA and SEC rules governing broker-dealer conduct. Use when the user asks about churning or excessive trading metrics, mutual fund breakpoint discounts, selling away or private securities transactions, outside business activities, unauthorized trading, supervisory procedure design, senior investor protections, trusted contact persons, variable annuity suitability, or options account approval. Also trigger when users mention 'turnover ratio is high', 'rep did…
Its SKILL.md is about 6.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Business, Finance & HR, covering Trading and backtesting and Responsive design. The repository describes itself as: Claude Code skill plugins for financial services — 81 skills across 7 domain plugins covering investment management, compliance, advisory practice, trading, and operations. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5c498ea. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sales Practices loads about 6.7k tokens when it runs. Until then it costs about 194 tokens; SKILL.md has 3,592 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from JoelLewis/finance_skills at commit 5c498ea, republished under its MIT licence (© JoelLewis). 3,592 words, ~6,678 tokens.
.claude/skills/sales-practices/SKILL.md (or your agent's skills folder).Regulatory status current as of June 2026 — verify effective dates, dollar thresholds, and pending rulemakings against current SEC/FINRA/FinCEN sources before advising.
FINRA Rule 2010 is the catch-all ethical standard for all member firms and associated persons. It requires adherence to "high standards of commercial honor and just and equitable principles of trade." This rule is intentionally broad and serves as the basis for disciplinary action even when no other specific rule is violated. Conduct that is unethical, dishonest, or in bad faith — even if technically legal — can be sanctioned under Rule 2010. FINRA enforcement frequently pairs Rule 2010 with more specific rule violations as a supplementary charge. Examples of standalone Rule 2010 violations include forgery, misrepresentation of credentials, conversion of client funds, and failure to disclose material information.
FINRA Rule 2020 prohibits any member or associated person from effecting any transaction in, or inducing the purchase or sale of, any security by means of any manipulative, deceptive, or other fraudulent device or contrivance. This rule mirrors the antifraud provisions of Section 10(b) of the Securities Exchange Act of 1934 and SEC Rule 10b-5. It covers a broad range of manipulative schemes including pump-and-dump, marking the close, wash trading, matched orders, and any scheme to defraud customers or the market.
Churning occurs when a broker engages in excessive trading to generate commissions rather than to benefit the customer. Two distinct legal frameworks apply, and they have different elements:
Quantitative metrics used under both frameworks:
Mutual funds offer volume discounts called breakpoints — reduced sales charges for larger purchases. Breakpoint abuse occurs when a broker fails to inform customers of available discounts or structures transactions to avoid breakpoints (e.g., splitting a single purchase into multiple smaller transactions across fund families). Key obligations:
FINRA has brought numerous Letters of Acceptance, Waiver and Consent (AWC) actions against firms and individuals for breakpoint failures. In 2003, FINRA (then NASD) conducted an industrywide sweep that resulted in approximately $43 million in restitution for breakpoint overcharges. Firms must maintain systems to identify breakpoint-eligible transactions and train registered representatives on breakpoint obligations.
FINRA Rule 3280 governs private securities transactions — any securities transaction outside the regular course or scope of an associated person's employment with a member firm. An associated person who wishes to participate in a private securities transaction must:
Selling away is one of the most common violations leading to FINRA disciplinary action and customer arbitration claims. Associated persons who sell unregistered securities, promissory notes, or interests in private companies without firm approval expose both themselves and investors to significant risk. Common selling away scenarios include private placements, real estate investments, cryptocurrency ventures, and personal loans from customers.
FINRA Rule 3270 requires associated persons to provide prior written notice to their employing member firm before engaging in any business activity outside the scope of their relationship with the firm. The notice must describe the activity and disclose whether compensation will be received. Upon receiving notice, the firm must:
The distinction between OBAs (Rule 3270) and private securities transactions (Rule 3280) is critical: if the outside activity involves a securities transaction, Rule 3280 applies and imposes heightened requirements. Firms that fail to evaluate OBA notices or maintain adequate records face supervisory failure charges.
FINRA Rule 3110 (Supervision) requires each member firm to establish, maintain, and enforce a system to supervise the activities of its associated persons that is reasonably designed to achieve compliance with applicable securities laws, regulations, and FINRA rules. Key components:
FINRA Rule 3120 (Supervisory Control System) requires each firm to designate one or more principals to establish, maintain, and enforce supervisory control policies and procedures. These principals must test and verify that the firm's supervisory system is functioning effectively. Senior management must receive an annual report on the firm's supervisory controls.
Supervisory failures are among the most frequently cited violations in FINRA enforcement actions. A firm may be held liable for a registered representative's misconduct if the firm failed to reasonably supervise or ignored red flags.
Marking the close involves placing orders near the end of the trading day with the purpose of artificially influencing the closing price of a security. This practice is prohibited under FINRA Rule 2020, Section 9(a)(2) of the Securities Exchange Act of 1934, and SEC Rule 10b-5. Related prohibited manipulative practices include:
Unauthorized trading occurs when a broker executes transactions in a customer's account without obtaining prior authorization. The regulatory framework distinguishes between account types:
Unauthorized trading violates FINRA Rules 2010 and 2020 and may also constitute fraud under federal securities law. Patterns of unauthorized trading frequently accompany churning allegations.
FINRA Rule 2165 provides a safe harbor for member firms to place temporary holds on disbursements of funds or securities from accounts of specified adults — customers aged 65 or older, or customers aged 18 or older who the firm reasonably believes have a mental or physical impairment that renders them unable to protect their own interests. Key provisions:
These rules do not require firms to place holds but provide a safe harbor from liability when firms act in good faith to protect vulnerable customers.
FINRA Rule 2330 imposes heightened suitability requirements for recommended purchases and exchanges of deferred variable annuities. Before recommending a VA transaction, the broker must make reasonable efforts to obtain and consider:
Specific requirements for VA recommendations:
1035 Exchanges: When a customer exchanges one annuity or insurance contract for another under IRC Section 1035 (a tax-free exchange), the broker must evaluate whether the new contract provides materially better features or benefits. The broker must consider whether the customer will incur surrender charges on the existing contract, lose benefits (such as a death benefit step-up), face a new surrender charge period, or face increased fees. A 1035 exchange that primarily generates a new commission without meaningful customer benefit is a supervisory red flag.
FINRA Rule 2360 governs the conduct of member firms and associated persons in options transactions. Key requirements:
Scenario: A 72-year-old retiree with a stated objective of income and capital preservation opens a brokerage account with $500,000. Over 12 months, her broker executes 147 transactions. The aggregate cost of purchases during the period is $3,200,000. The average account equity over the year is $480,000. Total commissions and fees charged are $112,000.
Compliance Issues:
Analysis: This pattern presents strong presumptive evidence of excessive trading under FINRA Rule 2111.05(c) (quantitative suitability — no control element required since the 2020 amendments) and, for a retail customer, under Reg BI's Care Obligation; fraud-based churning charges under Section 10(b)/Rule 10b-5 are also available if control and scienter can be established. The customer's age, conservative objectives, and reliance on the broker for retirement income are aggravating factors. The firm may also face supervisory failure charges under FINRA Rule 3110 if its exception reporting systems did not flag this activity or if flagged exceptions were not investigated. Potential remedies include disgorgement of excess commissions, restitution, fines, suspension, or barring of the broker.
Scenario: A customer wishes to invest $100,000 in equity mutual funds. The fund family's Class A shares have the following breakpoint schedule: 5.75% sales charge on purchases under $25,000; 5.00% at $25,000; 4.50% at $50,000; 3.50% at $100,000; and 2.50% at $250,000. Rather than placing a single $100,000 purchase to receive the 3.50% sales charge, the broker splits the investment across four different fund families in $25,000 increments. The customer pays an average sales charge of approximately 5.00%.
Compliance Issues:
Analysis: The customer paid approximately $5,000 in sales charges instead of $2,500 (at the 2.50% rate with rights of accumulation) — an overcharge of $2,500. This violates FINRA breakpoint guidance and Rule 2010. The firm's supervisory systems should have flagged the split purchases. FINRA AWC actions in this area typically require restitution of overcharges, a fine, and remediation of supervisory procedures. The broker may face individual sanctions. If the splitting was intentional to generate higher concessions for the broker, it may also implicate Rule 2020.
Scenario: A registered representative learns about a private real estate development project through a personal contact. Believing it is a strong investment opportunity, the representative recommends the investment to 15 of his brokerage clients, raising $2.3 million. The representative receives a 7% referral fee ($161,000). He does not provide written notice to his employing firm, does not record the transactions on the firm's books, and the investments are not supervised by the firm. Two years later the project fails and investors lose substantially all of their investment.
Compliance Issues:
Analysis: This is a clear violation of FINRA Rule 3280 (private securities transactions/selling away) and Rule 2010 (standards of commercial honor). The representative faces potential barring from the industry. The firm may also face supervisory liability under Rule 3110 if it had reason to know about the representative's outside activities (e.g., customer complaints, lifestyle indicators, or OBA disclosures that should have prompted further inquiry) and failed to investigate. Customers may pursue arbitration claims against both the representative and the firm. FINRA enforcement actions for selling away frequently result in bars, suspensions, and substantial fines. The firm's failure to detect the activity may indicate deficiencies in its OBA review process and surveillance of associated persons' activities.
© JoelLewis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/compliance/skills/sales-practices of JoelLewis/finance_skills.
Open the folder on GitHubat commit 5c498ea
Sales Practices next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sales Practices this skillJoelLewis/finance_skills | 206 | — | ~6.7k | Automated safety check: Pass | MIT | |
| Markdownfacioquo/stock-indicators-dotnet | 1.2k | — | ~812 | Automated safety check: Pass | Apache-2.0 | |
| Documentationfacioquo/stock-indicators-dotnet | 1.2k | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| Trading Analysis Dashboard Templatenexu-io/open-design | 100k | — | ~594 | Automated safety check: Pass | Apache-2.0 | |
| Tushare Datazillionare/zillionare | 321 | 2 repos | ~2.3k | Automated safety check: Pass | None | |
| Tradingview MCPatilaahmettaner/tradingview-mcp | 5k | — | ~1.3k | Automated safety check: Pass | MIT |
facioquo/stock-indicators-dotnet
Format and lint Markdown in this repository against GitHub Flavored Markdown and its markdownlint-cli2 configuration — headers, lists, code fences, callouts (VitePress containers on docs-site pages…
facioquo/stock-indicators-dotnet
Author indicator reference pages on the VitePress documentation site — page section order, parameter and result tables, warmup and convergence wording, chaining and streaming examples, the…
nexu-io/open-design
Professional trading analysis dashboard template (single-file HTML) with light/dark theme switch, dense market panels, chart interactions, demo/live playback, and command palette behavior.
zillionare/zillionare
面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求,转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。
atilaahmettaner/tradingview-mcp
AI Trading Intelligence — live prices, 30+ technical indicators, backtesting (6 strategies), walk-forward overfitting detection, trade logs, equity curves, licensed news sentiment (Marketaux), and…
komako-workshop/digital-oracle
Answer prediction questions using market trading data, not opinions.
JoelLewis/finance_skills
Determine how to distribute capital across asset classes using strategic and tactical allocation frameworks.
JoelLewis/finance_skills
Determine how much capital to allocate to individual positions within a portfolio.
JoelLewis/finance_skills
Analyze commodity markets including futures curve dynamics, roll yield, and supply/demand fundamentals.
JoelLewis/finance_skills
Analyze currency markets, exchange rate mechanics, and FX risk management for international portfolios.
JoelLewis/finance_skills
Provide frameworks for managing and paying off personal debt effectively.
JoelLewis/finance_skills
Build diversified portfolios using correlation analysis, efficient frontier construction, and factor-based diversification.
Categories
Identify and prevent sales practice violations under FINRA and SEC rules governing broker-dealer conduct. Sales Practices is an agent skill from JoelLewis/finance_skills. Identify and prevent sales practice violations under FINRA and SEC rules governing broker-dealer conduct.
Sales Practices fits situations like: the user asks about churning; excessive trading metrics; mutual fund breakpoint discounts; private securities transactions.
Run `npx skills add JoelLewis/finance_skills --skill sales-practices -a claude-code`. Or copy the skill folder (plugins/compliance/skills/sales-practices in JoelLewis/finance_skills) into .claude/skills/sales-practices in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JoelLewis/finance_skills --skill sales-practices -a codex`. Or copy the skill folder (plugins/compliance/skills/sales-practices in JoelLewis/finance_skills) into .agents/skills/sales-practices in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JoelLewis/finance_skills --skill sales-practices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sales-practices, .gemini/skills/sales-practices, .github/skills/sales-practices and .opencode/skills/sales-practices in your project.
SKILL.md names no scripts, command-line tools or credentials: Sales Practices is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Sales Practices is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.7k tokens (SKILL.md is roughly 27k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Sales Practices: Markdown (facioquo/stock-indicators-dotnet, 1.2k stars), Documentation (facioquo/stock-indicators-dotnet, 1.2k stars), Trading Analysis Dashboard Template (nexu-io/open-design, 100k stars) and Tushare Data (zillionare/zillionare, 321 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JoelLewis (a GitHub user) maintains it in JoelLewis/finance_skills, which has 206 GitHub stars. The repository holds 91 skills in this directory. The repository was last updated on July 18, 2026.
Source: JoelLewis/finance_skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.