diff --git a/SC3043.md b/SC3043.md
new file mode 100644
index 0000000..6882915
--- /dev/null
+++ b/SC3043.md
@@ -0,0 +1,33 @@
+## In POSIX sh, `local` is undefined.
+
+### Problematic code:
+
+```sh
+myfunc() {
+  local i=0
+  ..
+}
+```
+
+### Correct code:
+
+In POSIX sh, you can adopt some convention to avoid accidentally overwriting variables names, e.g. prefixing with the function name:
+
+```sh
+myfunc() {
+  _myfunc_i=0
+  ..
+}
+```
+
+### Rationale:
+
+`local` is supported in many shells, including bash, ksh, dash, and BusyBox ash. However, strictly speaking, it's not POSIX.
+
+### Exceptions:
+
+Since quite a lot of real world shells support this feature, you may decide to [[ignore]] the warning.
+
+### Related resources:
+
+* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!